앞으로 하루에 한 번씩 면접을 준비한다는 생각으로 CS와 Java, DB에 관련된 내용을 작성할 것이다. 오늘은 OS부분에서의 MultiThread와 MultiProcess에 대해서 알아보겠다.MultiProcessMultiProcess란, 단어에서 유추할 수 있듯이 2개 이상의 프로세스가 동시에 실행되는 것을 의미한다.동시라는 말은 동시성과 병렬성 두 가지를 의미한다. 동시성은 CPU core가 1개일 때, 여러 프로세스를 매우 짧은 시간동안에 번갈아가면서 연산을 하는 시분할 시스템으로 실행되는 것이다.병렬성은 CPU core가 여러개일 때, 각각의 CPU core가 각각의 process를 연산함으로써 process가 동시에 실행되는 것이다. 프로세스들은 기본적으로 CPU와 메모리를 공유한다. 메모리의..
프로세스 생성부모 프로세스가 자식 프로세스를 생성부모 프로세스에서 OS로 SystemCall을 통해 자식 프로세스 생성 요청프로세스 트리를 통해서 부모 - 자식 관계 표현자원 필요부모와의 자원 공유OS로 부터 자원 할당자원 공유 유형부모와 자식 프로세스가 하나의 자원을 공유하는 유형일부만 공유하는 유형공유하지 않는 유형 → 이상적인 공유 형식 자식프로세스가 생성되었을 때, 부모와 자식은 경쟁적으로 자원을 차지하려고 함.수행부모와 자식이 공존하며 수행 → Thread?자식이 종료될 때까지 부모가 대기 → Wait, Blocked주소 공간자식이 부모의 주소를 복사 → Binary OS Data해당 공간에 새로운 프로그램프로세스 종료프로세스가 마지막 명령을 수행하고 종료되었을 때, System Call을 통해..
Chapter 3. Process프로세스란? 실행중인 프로그램!프로세스의 문맥을 잘 이해해야 한다.프로세스의 문맥(Context)CPU 수행 상태를 나타내는 하드웨어 문맥Program Counter각종 Register프로세스의 주소 공간Code, Data, Stack프로세스 관련 커널 자료 구조Kernel StackPCB(Process Control Block)StateState 변화프로세스는 상태(State)가 변경되며 수행된다.StateRunningCPU를 할당받고 Instruction을 수행중인 상태ReadyCPU를 할당받기를 기다리는 상태(모든 조건을 만족한 상태)BlockedCPU를 할당받아도 당장 Instruction할 수 없는 상태Process 자신이 요청한 Event(ex. I/O Inte..