CPU 스케줄링 운영체제는 컴퓨터 하드웨어를 관리하는 소프트웨어를 뜻한다. 운영체제의 목표는 자원을 여러 응용 프로그램이 효과적으로 나누어 사용할 수 있도록 하는 것이다. 단일 코어 CPU는 한 번에 하나의 프로세스만을 실행할 수 있다. CPU가 idle 상태이고 자원이 할당될 수 있는 상태라면 어떤 프로세스에게 할당하는 것이 가장 효율적일까? CPU 스케줄러는 CPU 자원이 할당되기를 준비하고 있는 상태, 즉 Ready 큐에 존재하는 프로세스 중에 하나를 선택하여 CPU 자원을 할당해준다. 이를 CPU 스케줄링이라고 한다. CPU 자원은 한정되어 있기 때문에 CPU 스케줄링은 가능한 빠르게 자주 일어나야 한다. 그래서 CPU 스케줄러를 단기 스케줄러(Short-term scheduler)라고도 한다. ..
프로세스 컴퓨터에서 현재 실행 중인 프로그램을 프로세스라고 한다. ctrl+shift+tab 단축키를 통해 작업 관리자를 열어 보면 현재 실행 중인 프로그램들, 즉 프로세스의 목록을 확인할 수 있다. 자주 헷갈리는 부분인데, 프로세서(Processor)는 CPU를 뜻하며 프로세스(Process)와는 완전히 다른 개념이다. 과거에 프로그램의 실행은 일괄 처리, 즉 작업(job)이었으나 이후에 태스크의 시분할 시스템으로 발전하였다. 프로세스 구조 프로세스 메모리는 다음과 같이 스택 섹션, 힙 섹션, 데이터 섹션, 텍스트 섹션으로 나뉜다. 스택 섹션 : 지역 변수, 파라미터와 같은 함수 호출 시에 임시 데이터들이 저장되는 장소이다. 함수를 호출할 때마다 파라미터를 저장한다. 힙 섹션 : 프로그램 실행 중 동적..