CS자료/운영체제 15

[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가지의 생명주기로 나눌수 있다...