본문 바로가기

CS/운영체제19

[Chapter 4. 스레드] 암묵적 스레딩과 사용 방법 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 암묵적 스레딩 (Implicit Threading) 스레드의 생성과 관리에 대한 책임을 컴파일러와 실행시간 라이브러리에게 넘겨주는 것을 말한다. ( ↔︎ 명시적 스레딩 : 개발자가 API를 통해 직접 스레드를 관리 ) 암묵적 스레딩은 개발자의 다중 스레드 응용 프로그램의 설계를 도와주는 한 가지 방법이며, 책에서는 이에 대한 3가지 접근법을 소개하고 있다. 1. 스레드 풀 (thread pool) 새로운 스레드를 매 요청마다 만들어주게 될 경우 아래와 같은 문제들이 발생한다. 1. 스레드를 생성하는 데에는 시간 소요가 발생 2. 무한정 새로운 .. 2022. 8. 20.
[Chapter 4. 스레드] 스레드와 TCB, 다중 스레드 모델 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 앞서 실행 중인 프로그램을 뜻하는 프로세스에 대하여 배웠다. 프로세스는 단 하나의 진행 플로우를 갖고 있기 때문에 굉장히 제한적이다. 또한 시스템 호출을 통해 다른 프로세스를 생성할 때 많은 시간과 자원이 필요하기 때문에 오버헤드가 발생한다. 이러한 프로세스를 사용자 수준 문맥의 text 영역만 공유하고 data stack 영역과 커널 수준 문맥은 모두 복사하여 새로운 주소를 할당받기 때문에 중량프로세스 라고도 부른다. 프로세스보다 더 작은 단위의 실행 수단을 프로세스 내에 만들어 한 프로세스 내에서 각각 별도의 진행 플로우를 갖도록 하는 게 .. 2022. 8. 19.
[Chapter 3. 프로세스] 프로세스의 생성과 종료 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 프로세스는 한 프로세스에 의해 새로 생성될 수 있으며, 생성된 프로세스는 자신에 의해서(수행을 마쳤을 경우) 또는 외부의 요청에 의해서 종료한다. 프로세스의 생성 프로세스는 다른 프로세스를 생성할 수 있고, 이렇게 생성하는 프로세스를 부모 프로세스, 생성된 새로운 프로세스를 자식 프로세스라고 한다. 부모 프로세스와 자식 프로세스는 1:N 관계를 가지기 때문에 위 그림과 같은 트리 구조를 형성한다. 각 프로세스는 프로세스 식별자로 보통 정수의 PID가 할당된다. * 원래 부팅 시작 시 가장 먼저 시작되는 프로세스인 init 프로세스가 PID 1을.. 2022. 8. 18.
[Chapter 3. 프로세스] 프로세스 상태와 Context Switching, PCB(Process Control Block) 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 프로세스의 상태 1. 준비(ready) 준비 상태는 스케줄링에 의하여 언제든지 실행이 될 수 있는 상태이다. 준비 리스트 (ready list) 또는 준비 큐(ready queue)에서 CPU 스케줄러에 의해 스케줄링 되기를 기다린다. 준비 상태로 천이되어 오는 경우 (1) 프로세스 생성 후, 선정되어 CPU 할당을 대기 (2) 실행되던 프로세스에서 비자발적인 문맥교환이 일어났을 때. → CPU 의 독점 방지를 위해서 타임 슬라이스 소진 시 혹은 인터럽트 발생으로 커널이 CPU 를 회수하고 프로세스를 일시 중지시킨 상태 (3) 대기하고 있던 입.. 2022. 8. 17.