운영체제 16

[OS] Scheduler

Scheduler 스케쥴러란? 시스템이 실행하고자 할 때 CPU를 프로그램에게 할당하는 과정 프로세스(작업) 실행을 위한 일종의 계획표다. 계획표의 종류는 3가지이다. Scheduling Queue(스케쥴링 큐)란? 스케쥴링을 위한 큐. 즉, 프로세스를 관리하기 위한 큐 Job Queue (Batch Queue): 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 존재하면서 CPU를 점유해서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O(Input, Output) 작업을 대기하고 있는 프로세스의 집합 스케쥴러의 종류 장기 스케쥴러, Job Scheduler *degree of multiprogramming의 제어 디스크와 메모리 사..

카테고리 없음 2022.03.03

[OS] Deadlock(교착상태)

교착상태의 개념과 조건 교착상태(Deadlock)란? 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태. 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. 교착상태 발생의 4가지 조건 교착상태가 발생하기 위해서는 다음의 네가지 조건이 충족되어야 하는데, 이 네가지 조건중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다. 상-점-비-환 상호배제 : 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 한다. 점유대기 : 이미 자원을 사용중인데, 다른 프로세스가 사용중인 자원을 사용하기 위해 대기하고 있는 상태의 프로세스가 존재해야 한다. 즉, 미리 줄 서있어야 한다. 비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다. 즉, 새치기 금지! 환형대기(순환대기)..

[OS]Context switching

Context switching 컨텍스트(Context)란? CPU가 해당 프로세스를 실행하기 위한 해당 프로세스의 정보들을 말함 이러한 컨텍스트는 프로세스의 PCB(Process Control Block)에 저장된다. 그렇기 때문에 이전 작업을 PCB에서 불러와서 이어서 하는 작업이 가능하다. 컨텍스트 스위칭(Context Switching)? 프로세스의 정보의 교체??? 멀티프로세싱하기 위해 CPU를 나눠서 사용하기 위해 Context를 교체하는 것이 Context Switching 단점 Context Switching 때 해당 CPU는 아무것도 못함. → 그래서 빈번하게 스위칭이 발생하면 오버헤드가 발생해 효율 및 성능이 저하된다. 🚩오버헤드란 ? 오버헤드(overhead)는 어떤 처리를 하기 위해..

[OS] CPU Scheduler, Scheduling Algorithm

CPU Scheduler, Scheduling Algorithm CPU Scheduling 단기 스케쥴링이라고도 한다. 단기 스케쥴러(CPU Scheduling)을 리마인드 해보자 메모리와 CPU 사이의 스케쥴링을 담당하는 것으로 어떤 프로세스를 실행(Running) 상태로 전환할 지 결정하는 것이다. 선점과 비선점 선점 (Preemptive) : 자리 뺏기 가능, 누가 앉아서 먼저 자리에 앉아서 작업하고 있는데 그게 끝나든 안끝나든 상관없이 자리를 뺏어서 내 작업 실행하기 즉, 새치기 가능한 방식 비선점 (Non-Preemptive) : 절대 안뺏기는 방식 즉, 새치기 절대 불가능 CPU Scheduing Algorithm First-Come, First-Served (FCFS) 먼저 온 놈 먼저 처리..

[운영체제 정리] 1

운영체제란? 컴퓨터의 자원을 효율적으로 관리를 해주고 사용자가 이용을 편리하게 해주는 기능을 제공해주는 프로그램이다. 운영체제에서 가장 중요한 프로세스 프로세스만 알면 절반은 먹고간다. 프로세스 프로세스는 cpu의 처리에 의해 실행중인 프로그램을 프로세스라고한다. 1 프로세스의 구조 프로세스는 4개의 구조를 가지고 있다. text(CODE): 컴파일된 소스 코드가 저장되는 영역 data: 전역 변수/초기화된 데이터가 저장되는 영역 stack: 임시 데이터(함수 호출, 로컬 변수 등)가 저장되는 영역 heap: 코드에서 동적으로 생성되는 데이터가 저장되는 영역 좀더 쉽게 실제 코드에서 작동을 했을 때 저장되는 부분을 보면 이해가 쉽다. 1-1 프로세스의 생명주기 프로세스는 5가지의 생명주기로 나눌수 있다...

1 2