본문 바로가기

OS2

5. CPU Scheduling 이전까지 프로세스와 쓰레드에 대해 공부해 보았고 시간이 지남에 따라 단일 프로세스 / 쓰레드 환경 → 다중 프로세스/쓰레드 환경으로 변화해왔다는 사실까지 알 수 있었다. 이러한 다중 프로세스 환경에서는 자연스럽게 어느 프로세스가 CPU를 점유할 것인지에 대한 고민이 생겨났으며 보다 효율적으로 CPU에 프로세스를 스케쥴링할 수 있는 방법에 대한 고민이 늘어갔다. 이번 정리에서는 효율적으로 CPU에 프로세스를 할당할 수 있는 여러 CPU Scheduling 방법에 대해 정리해 보았다. 1. 기본 개념 1.1 CPU scheduling Multi-Programming(memory에 여러 프로세스를 올려놓고 시분할하여 cpu를 점유하는 것) OS의 기본이라고 할 수 있다. 따라서 OS 설계의 핵심이라고 볼 수 .. 2021. 5. 31.
4. Thread 1. Overview 🍠 Thread? CPU 이용의 기본 단위 = Lightweight process Thread의 구성 요소 🛷 각 쓰레드별 요소 Thread ID 프로그램 카운터(PC) 레지스터 집합 스택 📝 같은 프로세스의 다른 쓰레드와 공유 요소 코드 데이터 열린 파일 / 신호 등의 OS 자원 🏐 모식도 🥎 Muti-thread programming 의 장점 응답성(Responsiveness) 다중 쓰레드화 하면 어느 한 요청의 응답시간이 길어지더라도 그 외 쓰레드로 다른 요청을 처리할 수 있다. 자원 공유(Resource Sharing) 기존의 프로세스간 통신(IPC)에서는 Shared Memory 혹은 Message Queue 방식을 사용해 자원을 공유했다. 반면 쓰레드 끼리는 그들이 속한 .. 2021. 5. 14.