본문 바로가기

CS/OS4

[OS] CPU 스케줄링 CPU 스케줄링은 multiprogrammed 운영체제에서 기저가 되며, CPU를 여러 프로세스들이 스위칭하며 사용하기 때문에 보다 생산적이다.5.1 Basic ConceptsCPU 스케줄링을 하는 목적은 CPU utilization을 최대화하기 위함이다.I/O 요청과 같은 일을 처리하기 위해서 프로세스는 기다리며 시간을 낭비하게 된다.이를 idle time이라고 하는데, CPU가 idle일 때 다른 프로세스를 처리하도록 스케줄링하므로써 CPU utilization을 극대화 할 수 있다. CPU SchedulerCPU가 idle이 되면, 운영체제는 ready queue에서 프로세스를 하나 선택하여 실행하게 된다.이 선택을 하는 것이 CPU schduler이다.ready queue는 꼭 FIFO 형태로 구.. 2024. 7. 16.
[OS] 스레드&동시성 4.1 Overview스레드는 CPU utilization의 기본적인 단위이다.스레드의 구성 요소로는 thread ID, PC, register set, stack 이 있으며,code 섹션, data 섹션, 파일과 같은 프로세스 리소스는 다른 스레드들끼리 공유한다.stack 영역은 공유하지 않음.  왜 멀티스레드를 사용할까? 예시를 들어 설명해보자. 여러 클라이언트들이 동시에 접근하는 바쁜 서버가 존재한다고 할 때,서버 프로세스가 single-threaded 이면 한 번에 하나의 클라이언트에 대해서만 서비스가 가능하다. 그리고 나머지 클라이언트들은 대기를 해야한다. 이에 대한 해결법으로 다음과 같은 경우가 있다. 요청을 받는 프로세스가 클라이언트의 요청을 받게 되면, 요청을 처리하는 별도의 프로세스를 생.. 2024. 7. 14.
[OS] 프로세스 과거의 컴퓨터는 한 번에 하나의 프로그램만 실행이 가능했지만, 현대의 컴퓨터는 메모리에 여러 프로그램들을 올리고 load하고 concurrently하게 실행이 가능하다.3.1 Process ConceptProcess프로세스는 실행 중인 프로그램프로세스의 현재 활동 상태 (status of the current activity)는 program counter의 값과 레지스터의 값에 따라 나타낼 수 있다.Memory layout은 여러 섹션으로 나눌 수 있으며 일반적인 섹션은 다음과 같다.Text section : executable code가 저장된 영역Data section : 전역 변수들이 저장된 영역Heap section : 프로그램의 런타임 동안에 동적으로 할당될 수 있는 영역Stack sectio.. 2024. 7. 8.
[OS] 운영체제 기초 프로세스: 컴퓨터에서 실행되는 각 작업을 운영체제에서 사용하는 정확한 용어 멀티 태스킹 운영체제: 여러 개의 프로세스들이 적절한 방법(문맥 교환, 스케줄링 등)으로 돌아가면서,독립적으로 실행되도록 해주는 운영체제 스케줄링: 특정 시점에 여러 개의 프로세스들 중에서 실행할 대상으로 어떤 것을 선택하는 것 문맥교환: CPU가 현재 실행하던 프로세스를 보류하고 스케줄링에 의해 선택된 프로세스를 실행하도록 변경하는 작업운영체제를 통한 하드웨어 접근의 장점(응용 프로세스는 하드웨어에 직접 접근하지 못하도록하고 운영체제의 기능을 통해 처리하게 한다.)프로그래머는 컴퓨터 하드웨어에 관한 세부적인 지식이 없어도 원하는 프로그램 작성 가능컴퓨터마다 하드웨어의 구성이 다를 수 있고 이를 제어하기 위한 방법을 숙지해야 함운.. 2024. 7. 8.