CS 지식/운영체제

CS 지식/운영체제

[CS] 페이지 교체 알고리즘

페이지 교체 알고리즘운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용하는데, 이를 가상메모리 기법이라 합니다.페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시 Page Fault가 발생합니다. 이때, 어떤 프레임에 있는 페이지를 선택하여 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라고 합니다.  1. FIFO(First in First out) 알고리즘FIFO 알고리즘은 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 알고리즘입니다.구현이 간단하지만 성능은 좋지 않은 편입니다.들어온 시간을 저장하거나 올라온 순서를 큐를 이용해 저장할 수 있습니다.Belady`s Anomaly 현상이 발..

CS 지식/운영체제

[CS] 단편화와 해결 방법

단편화 (Fragmentation)주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간 주기억장치 상에서 빈번하게 기억장소가 할당되고 해제됨에 따라 기억장소들이 조각들로 나누어지는 현상 내부 단편화프로세스에 할당된 메모리 공간이 실제로 프로세스가 필요한 공간보다 많이 할당되었을 때, 프로세스 내부에서 발생되는 단편화를 말합니다.   외부 단편화메모리가 할당되고 해제되는 작업이 반복되면서 작은 공간의 메모리 영역이 생기게 됩니다.이 공간의 크기가 어떤 프로세스가 필요로 하는 크기보다 작은 경우에 생기는 단편화를 말합니다. 단편화의 해결 방법1. 통합 (Coalescing)단편화로 인해 분산되어 있는 메모리 공간들을 인접해 있는 것끼리 통합시켜 큰 메모리 공간으로 합치는 ..

CS 지식/운영체제

[CS] 스케줄러

스케줄러스케줄러는 어떤 프로세스에게 자원을 할당할지 결정하는 역할을 합니다.운영체제는 스케줄러를 통해 CPU를 사용하려고 하는 프로세스 사이의 우선 순위를 관리합니다.이것을 스케줄링이라고 부릅니다.프로세스를 스케줄링하기 위한 스케줄링 큐에는 다음의 세 가지 종류가 존재합니다.작업 큐(Job Queue) : 현재 시스템 내의 모든 프로세스의 집합준비 큐(Ready Queue) : 메인 메모리에 존재하며, CPU를 할당받고 실행을 기다리는 프로세스의 집합장치 대기 큐(Device Queue) : 특정 입/출력장치를 대기하는 프로세스의 집합 스케줄러의 종류1. 장기 스케줄러 (Long-Term Scheduler 또는 Job Scheduler)메모리와 디스크 사이의 스케줄링을 담당합니다.많은 프로세스들이 한꺼번..

CS 지식/운영체제

[CS] 교착 상태

교착 상태 (DeadLock) 교착 상태는 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다리면서 무한 대기에 빠지는 상황을 일컫습니다. 즉, 한정된 자원을 여러 곳에서 사용하려고 하면서 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태입니다. 프로세스1과 프로세스2가 모두 자원1, 자원2를 얻어야 한다고 가정합니다. t1 : 프로세스1이 자원1을 얻은 동시에 프로세스2는 자원2를 얻음 t2 : 프로세스1은 자원2를 기다리고 프로세스2는 자원1을 기다림 이처럼 현재 서로 원하는 자원이 상대방에게 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠지게 되는데 이러한 상황을 교착 상태라고 부릅니다. 교착 상태가 주로 발생하는 경우는 다음과 같습니다. 멀티 프로그래밍 환경에..

CS 지식/운영체제

[CS] 상호 배제

상호 배제 (Mutual Exclusion)상호 배제는 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘입니다.이는 임계 구역으로 불리는 코드 영역에 의해 구현되며, 하나의 프로세스가 공유 자원을 사용할 때 다른 프로세스의 접근을 막을 수 있도록 합니다. 상호 배제는 멀티 프로세스나 멀티 스레드의 동기화에 사용됩니다.또한, 이는 교착 상태의 4가지 필요 조건 중 하나로서 교착 상태와 기아 상태가 발생할 수 있습니다.교착 상태 (Deadlock) : 무한 대기기아 상태 (Starvation) : 우선순위가 낮아 자원을 계속 할당받지 못하는 상태 임계 구역 (Critical Section)임계 구역은 공유 자원에 접근하는 프로세스 내부의 코드 영역입니다.어떤 프로세스가 이 영역을 수행 중일 때..

CS 지식/운영체제

[CS] IPC 통신

IPC IPC(Inter Process Communication)는 프로세스 간의 통신을 일컫는 말입니다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고받을 수 있다는 것입니다. 즉, 이는 동시에 접근 가능한 메모리, 다른 말로는 서로 공유하는 메모리가 있다는 것을 뜻합니다. IPC의 종류 1. 익명 파이프 (Anonymous PIPE) 익명 파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 할 수 있기 때문에 한쪽 방향으로만 통신이 가능한 반이중 통신이라고도 부릅니다. 따라서, 양쪽으로 모두 송/수신을 하고 싶으면 2개의 파이프를 만들어야 합니다. 간단하게 사용할 수 있는 장점이 있고 단순한 데이터 흐름을 가질 땐 파이프를..

CS 지식/운영체제

[CS] 인터럽트

인터럽트 (Interrupt) 인터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우, 현재 실행 중인 작업을 즉시 중단하고 발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것입니다. 하드웨어 장치가 CPU에게 어떤 사실을 알려주거나 CPU의 서비스를 요청해야할 경우, CPU 내에 있는 인터럽트 라인을 세팅하여 인터럽트를 발생시킨다 CPU는 매번 프로그램 카운터(PC)가 가리키는 명령어를 수행한 뒤, 다음 명령을 수행하기 전에 인터럽트 라인이 세팅되었는지 체크합니다. 이를 통해 인터럽트가 발생했으면 CPU는 현재 수행 중이던 프로세스를 멈추고 운영체제의 인터럽트 처리 루틴으로 이동하여 처리힙니다. 인터럽트의 종류 1. 하드웨어 인터럽트 (외부 인터럽트) 하드웨어 컨트롤러가 CPU..

CS 지식/운영체제

[CS] 프로세스와 스레드

프로세스 (Process) 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받은 작업을 말합니다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당받으며 이것들을 총칭하여 프로세스라고 합니다. 기본적으로 프로세스마다 최소 1개의 스레드를 갖습니다. (메인 스레드) 프로세스는 각각 별도의 메모리 영역(주소 공간)을 할당받습니다. Code : 코드 자체를 구성하는 메모리 영역 (프로그램 명령) Data : 전역변수, 정적변수, 배열 등 (초기화된 데이터) / 초기화되지 않은 데이터는 Bss 영역에 저장 Heap : 동적 할당 시 사용 (new(), malloc() 등) Stack : 지역변수, 매개변수, 리턴 값 등 (임시 메모리 영역) 하나의 프로세스는 다른 프로세스의 변..

damon-911
'CS 지식/운영체제' 카테고리의 글 목록