Context Switching이 무엇인가? 멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값(Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값(Context)를 교체하는 작업을 Context Switch(Context Switching)라고 한다. 질문에 대한 답변은 이정도로 하고 좀 더 명확하게 이해해본다. * Context Switching을 문맥 교환으로 번역하지 말자. Context는 무엇인가? 사용자와 다른 사용자, 사용자와 시스템 또는 디바이스간의 상호작용에 영향을 미치는 사람, 장소, 개체등의 현재 상황..
[선택 정렬] 현재 위치의 값과 비교 값의 크기를 비교하여 크냐 작냐에 따라 정렬 우선순위가 정해지며, 정렬을 수행하는 알고리즘. 크기가 크냐에 따라 최소 선택 정렬과 최대 선택 정렬로 구분할 수 있다. 최소 선택 정렬은 오름차순으로 정렬되며, 최대 선택 정렬은 내림차순으로 정렬이 된다. 시간 복잡도 : O(n^2) 공간 복잡도 : O(n) 수행 과정 : 오름차순으로 정렬 i번째 인덱스에 가장 작은 값을 저장하기 위해 i + 1번째 인덱스부터 n번째 인덱스까지 i번째 인덱스와 비교하여 가장 작은 값의 위치 j를 탐색한다. 가장 작은 값이 위치한 j번째 인덱스와 i번째 인덱스의 값을 스왑해준다. i를 1 증가시켜 다음 인덱스에 저장될 값을 구해준다. i가 n-1일때 까지 반복. void selection_..
SOLID 원칙 SRP 단일 책임 원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙 DIP 의존 역전 원칙 = Single Responsiblity Principle 단일 책임 원칙 = 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임(기능)만을 가져야 한다. 응집도는 높고 결합도는 낮은 프로그램을 목표. 클래스가 수행할 수 있는 기능, 즉 책임이 많아지면 클래스 내부 함수끼리 강한 결합을 발생할 가능성이 높아진다. 이는 유지보수에 어려움이 따르므로 분리시킬 필요가 있다. class cSocket { ... } class cBind { ... } class cServer { cSocket m_socket; cBind m_bind; ... } =Open-Clos..
gcc에서 라이브러리 파일을 사용하여 실행파일을 만들때는 -l과 -L 옵션을 사용하여 만드는 방법이 있다. -l 라이브러리의 이름을 적어주는 옵션 -L 라이브러리가 포함된 디렉토리를 적어주는 옵션 예를 들어 라이브러리의 이름이 libtest.a이고 위치가 libs 폴더에 있다면, (1)$ g++ -o out main.cpp -ltest.a -Llibs (2)$ g++ -o out main.cpp -ltest -L. 이런 형식으로 사용을 하면 된다. (1) 리눅스에서 라이브러리는 반드시 lib 로 시작이 되며, 옵션에 라이브러리 이름을 적을 때, lib는 생략하고 이름을 적으면 된다. 즉, libtest.a는 test.a라고 적으면 된다. (2) 현재 폴더에 있는 라이브러리를 쓴다는 말이다.
1. 설치 코드 다운로드 주소 : https://github.com/gperftools/gperftools/releases gperftools/gperftools Main gperftools repository. Contribute to gperftools/gperftools development by creating an account on GitHub. github.com 다운로드 후 순서대로 명령어 수행 $ tar -zxvf gperftools-2.7.tar.gz $ cd gperftools-2.7 $ sudo ./configure $ sudo make $ sudo make install 빌드가 끝나면, 기본 위치인 /usr/local/lib 폴더에 라이브러리 파일이 생성된다. 이 문서에서 링킹 할..
# yum groupinstall "X Window System"# yum groupinstall "Fonts"# yum install kde_workspace# yum install gdm# unlink /etc/systemd/system/default.target# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target # shutdown -r now
명령어 touch파일의 시간 정보를 변경하는 명령어. 크기가 0인 파일을 생성하는 용도로 자주 사용. touch [옵션] 파일이름 퍼미션d : 디렉토리- : 파일l : 링크 퍼미션은 맨 처음 한글자를 제외한 뒤의 문자 3개씩이 각각 파일 소유자에 권한, 그룹에 대한 권한, 그 외의 사용자에 대한 권한을 나타낸다.퍼미션은 숫자로도 표한할 수 있다. r 4 w 2 x 1 - 0 rwxr-xr-x는 4+2+1, 4+0+1, 4+0+1 이므로 755로 표현된다.