본문 바로가기

CS59

[Chapter 5. CPU 스케줄링] 스케줄러와 CPU 스케줄링, CPU burst time 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 스케줄러 앞서 프로세스는 중단되고 속개되는 상태가 지속적으로 반복된다고 하였다. 즉, 실행되는 상태에서 중단되어 다른 프로세스가 CPU를 선점하게 될 경우 다음 실행시킬 프로세스의 선정이 필요하다. 이때, 컴퓨터가 가진 자원은 한정되어 있고, 여러 프로세스가 효율적으로 사용하기 위해서는 스케줄러(Scheduler)가 존재한다. 스케줄러는 다음 실행 시간에 실행할 수 있는 프로세스들 중 하나를 선택해주는 역할을 해준다. 스케줄러에는 3가지 종류(장기, 중기, 단기 스케줄러)가 있다. 장기 스케줄러 (Long-term scheduler) / 작업 .. 2022. 8. 22.
[Chapter 4. 스레드] 스레드와 관련한 문제들 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 이 절에선 다중 스레드 프로그램을 설계할 때 고려해야할 문제들에 대하여 정리한다. fork() 및 exec() 시스템 호출 앞서 fork와 exec을 통하여 자식 프로세스를 만드는 방법에 대하여 알아보았다. 참고: https://developbear.tistory.com/101?category=1027028 [Chapter 3. 프로세스] 프로세스의 생성과 종료 본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다. 프로세스는 한 프로세스.. 2022. 8. 21.
[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.