목록전체 글 (104)
눈팅하는 게임개발자 블로그
실행 대기중인 프로세스(스레드)중 하나를 선택하는 과정. CPU의 유휴 시간(CPU가 노는 시간)을 최소화하여 CPU의 활용률을 극대화한다. 컴퓨터 시스템 처리율의 향상을 목적으로 한다. CPU 스케줄링이 시행되는 4가지 경우 1. 스레드가 시스템 호출 끝에 I/O를 요청하여 Block될 때. 2. 스레드의 CPU 타임 슬라이스를 모두 소진하여 타이머 인터럽트가 발생할 때.. 3. 스레드가 자발적으로 CPU를 반환하여 새로운 스레드를 선택해야 할 때. 4. 더 높은 우선순위의 스레드가 요청한 입출력 작업이 완료되어 인터럽트가 발생할 때. 타임 슬라이스 커널이 스케줄을 단행하는 주기 시간. 스케줄 된 스레드에게 할당하는 CPU 시간. CPU는 타이머 인터럽트의 도움을 받아 타임 슬라이스를 단위로 스케줄링한..
프로세스 보조기억장치에 적재되어 있던 프로그램이 실행을 위해 메모리에 적재되어 코드, 데이터, 힙, 스택 메모리 영역을 할당 받아 프로세스가 된다. 프로세스의 Life Cycle 프로세스는 생성에서 소멸까지의 상태가 변하면서 Ready, Running, Terminated, Zombie, Blocked의 5가지 상태를 가질 수 있다. 프로그램이 최초 실행되어 메모리에 적재되면 언젠가 스케줄이 될 수 있도록 Ready 상태가 된다. 이후 스케줄되어 Running 상태로 변하여 프로세스가 실행되며. 프로세스 실행 중 다른 작업이 끝나길 기다리거나 IO 입출력이 실행되면 Blocked 상태로 변해 대기하게 된다. 이후 프로세스가 완료되거나 종료되면 Terminated/Zomibe 상태가 되어 종료 코드를 남긴..
Thread 개념이 나타난 배경 프로세스가 작업 단위로서 사용 되기에 여러 단점들이 존재함. - 프로세스 생성에 드는 비용이 크다. 프로세스를 위한 메모리를 할당하고, PCB(Process Control Block)를 생성하고, 페이지 테이블 생성하는 등 프로세스를 생성하는 시간의 오버헤드가 크다. - 프로세스 컨텍스트 스위칭에 드는 비용이 크다. CPU와 PCB 사이의 컨텍스트 교환에 드는 비용이 크고. 페이지 테이블 전환(TLB 등)에 따른 지연 시간이 길고, CPU 캐시 변경 등에 드는 비용이 크다. - 프로세스 사이 통신의 어려움 프로세스들은 완전히 독립적인 주소 공간을 가지고 있기 때문에 두 프로세스 사이에 데이터를 주고 받기 위해서는 제 3의 공간이나 특별한 방법이 필요. IPC를 이용할 경우..