728x90

Computer Science/운영체제 10

[운영체제] 싱글 스레드와 멀티 스레드

싱글 스레드 하나의 프로세스 내에서 하나의 스레드만 실행되는 것을 말합니다. 그렇기 때문에 하나의 PC레지스터와 하나의 스택을 가지고 있습니다. 멀티 스레드 하나의 프로세스 내에 여러 스레드를 구성해서 각각의 스레드가 하나의 작업을 처리하는 것을 말합니다. 각각의 스레드는 PC 레지스터와 스택을 따로 가지고 있으며, 쓰레드 간에 데이터 영역이나 힙 영역을 공유하며 동작합니다. 자원 공유를 통해 자원의 중복을 최소화하여 관리할 수 있습니다. 싱글 스레드의 장단점 장점 스레드 간의 자원 공유가 없기 때문에 그에 대한 동기화에 대해 신경쓰지 않아도 됩니다. 스레드 간의 context switching이 일어나지 않으므로 이 과정에서 발생하는 오버헤드를 방지할 수 있습니다. 단점 여러개의 CPU를 활용하지 못합..

[운영체제] 캐시의 지역성

캐시의 지역성의 원리 캐시메모리는 속도가 빠른 장치와 느린 장치간의 속도 차에 따른 병목 현상을 줄이기 위한 범용 메모리 이러한 역할을 수행하기 위해선 CPU가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 함. (캐시의 성능은 작은 용량의 캐시 메모리에 CPU가 이후에 참조할 쓸모있는 정보가 얼마나 들었느냐에 좌우되기 때문) 이때, 적중률(cache hit rate)을 극대화 시키기 위해서 데이터 지역성(Locality)의 원리를 사용 Locality의 전제 조건 : 프로그램은 모든 코드나 데이터를 균등하게 access하지 않는다. (어느 한 순간에 특정 부분을 집중적으로 참조하는 특성) 이는 대표적으로 시간 지역성과 공간지역성으로 나뉨. - 시간 지역성: 최근에 참조된 주소의 내용은 곧 다..

[운영체제] 가상 메모리

가상 메모리 다중 프로그래밍의 실현에 있어서는 많은 프로세스들을 동시에 메모리에 올릴 수 있어야 한다. 가상 메모리는 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법이며, 프로그램이 물리 메모리 보다 커도 된다. 가상 메모리 개발 배경 이전에는 실행되는 코드를 전부 물리 메모리에 올려둬야 했으며, 메모리의 용량 보다 큰 프로그램의 경우엔 실행이 불가능 했음. 여러 프로그램을 동시에 메모리에 올리기 힘든 용량의 한계, 페이지 교체등의 성능 이슈가 발행. 프로그램의 일부만 메모리에 올릴 수 있다면? - 물리 메모리의 크기에 제약 받지 않게 됨 - 더 많은 프로그램들을 동시에 시행할 수 있게 됨. -> 응답시간은 유지되고 CPU 이용률과 처리율은 높아짐. - swap에 필요한 입출력..

[운영체제] 메모리 관리 전략

메모리 관리 전략 메모리 관리의 배경 각 프로세스는 독립된 메모리 공간을 갖고, 운영체제나 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있음. (단, 운영체제만이 운영체제 메모리 영역과 사용자 메모리 영역에 접근에 제약을 받지 않음) Swapping 메모리 관리를 위해 사용되는 기법으로, 라운드 로빈과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU할당 시간이 끝난 프로세스의 메모리를 보조기억 장치로 내보내고 다른 프로세스의 메모리를 불러들일 수 있음. 주기억장치(RAM)으로 불러오는 과정을 swap-in, 보조 기억장치로 내보내는 과정을 swap-out이라고함. 이는 큰 디스크 전송 시간이 요구되기 때문에 현재엔 메모리 공간이 부족할 때 swapping이 시작됨. 단편화 (Fragmenta..

[운영체제] 교착상태 (Deadlock) 및 기아상태(Starvation)

교착상태 (Deadlock) 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태 데드락이 일어나는 경우 P0과 P1이 S와 Q를 모두 얻어야 하는 경우에 P0이 S를 얻고 그 후 context switching이 일어나 P1이 Q를 얻었다. 그리고 다시 context switching이 일어나고 P0은 Q자원을 얻기 위해 기다리게 되고 P1은 S자원을 얻기 위해 기다리게 된다. 즉 서로가 원하는 자원이 상대에게 있어 아무것도 진행되지 못하고 둘 다 기다리고 있는 상황이 되는 것이다. 교착상태의 발생 조건 - 모두 성립해야 발생 - 상호 배제 : 하나의 프로세스가 자원을 사용중일 때 다른 프로세스는 그를 사용할 수 없다. - 점유 대기 : 최..

[운영체제] 프로세스 동기화

Critical Section (임계 영역) 동일한 자원을 동시에 접근하는 작업 (ex 공유하는 병수 사용, 동일 파일을 사용 등)을 실행하는 코드 영역. Critical Section Problem (임계 영역 문제) 프로세스들이 Critical Section을 함께 사용할 수 있는 프로토콜을 설계하는 것. 해결을 위해 필요한 기본 조건 - Mutual Excusion (상호 배제) 프로세스 P1이 critical section에서 실행중이라면 다른 프로세스들은 critical section에서 실행될 수 없다. 즉, 한번에 하나의 프로세스만이 동작할 수 있다. - Progress (진행) critical section에서 실행 중인 프로세스가 없는 경우 어떤 프로세스가 critical section에..

[운영체제] 동기와 비동기

비유를 통한 쉬운 설명 해야할 일(task)가 빨래, 설거지, 청소 세 가지가 있다고 가정한다. 이 일들을 동기적으로 처리한다면 빨래를 하고 설거지를 하고 청소를 한다. 비동기적으로 일을 처리한다면 빨래하는 업체에게 빨래를 시킨다. 설거지 대행 업체에 설거지를 시킨다. 청소 대행 업체에 청소를 시킨다. 셋 중 어떤 것이 먼저 완료될지는 알 수 없다. 일을 모두 마친 업체는 나에게 알려주기로 했으니 나는 다른 작업을 할 수 있다. 이 때는 백그라운드 스레드에서 해당 작업을 처리하는 경우의 비동기를 의미한다. Sync vs Async 일반적으로 동기와 비동기의 차이는 메소드를 실행시킴과 동시에 반환 값이 기대되는 경우를 동기 라고 표현하고 그렇지 않은 경우에 대해서 비동기 라고 표현한다. 동시에라는 말은 실..

[운영체제] CPU 스케줄러

CPU 스케줄러 Ready Queue에 있는 프로세스들을 스케줄링함. CPU를 효율적으로 사용하기 위해서는 프로세스를 잘 배정하는 것이 중요. - 오베헤드를 줄이고, 기아 현상(starvation)을 줄이고, 사용률을 높이는 쪽으로 선점 / 비선점 스케줄링 선점 : OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 비선점 : 프로세스 종료나 I/O 등의 이벤트가있을 때 까지 실행 보장 (처리 시간 예측이 어려움) FCFS (First Come First Served) Ready Queue에 먼저 들어온 순서대로 처리하는 방식 (선입선출). 비선점 스케줄링 문제정: convey effect(소요시간이 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상) SJF (Shortest Job Fi..

[운영체제] 스케줄러

스케줄러 프로세스를 스케줄링하기 위한 Queue에는 3가지가 존재함 1) Job Queue : 현재 시스템 내에 있는 모든 프로세스들의 집합 2) Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당받아 실행되기를 기다리는 프로세스들의 집합 3) Device Queue : Device I/O작업을 대기하고 있는 프로세스의 집합. 각각의 Queue에 프로세스를 넣고 빼는 스케줄러도 3가지가 존재함 장기 스케줄러 / 단기 스케줄러 / 중기 스케줄러 장기 스케줄러 (Long-term scheduler / Job scheduler) 메모리의 크기는 한정되어 있는데 많은 프로세스가 한번에 메모리에 올라오는 경우, 대용량 메모리(일반적으로 디스크)에 임시 저장. 이 pool에 저장된 프로세스 중 어떤 ..

[운영체제] 프로세스와 스레드의 차이

프로세스 프로세스는 실행중인 프로그램으로 운영체제로 부터 주소공간, 파일, 메모리등의 자원을 할당받는 개체. 프로그램은 실행파일이 메모리에 로드될 때 프로세스가 됨. 프로세스는 코드섹션, 데이터 섹션, 스택섹션, 힙섹션, 프로그램 카운터를 포함. 프로세스 제어 블록(PCB) 프로세스마다 하나씩 존재하며 프로세스에 대한 중요한 정보를 저장. (TCB라고 불리기도 함) 운영체제는 프로세스를 관리하기 위해 프로세스 생성시 고유한 PCB를 함께 생성. 프로세스는 CPU 자원을 할당 받아 작업을 처리하다가도 프로세스 전환이 필요하면 진행중이던 작업의 진행상황을 PCB에 저장하고 CPU자원을 반환함. 그 후 다시 CPU를 할당받게 되면 PCB에 저장되었던 내용을 불러와 이전의 작업을 이어서 함. PCB에 저장되는 ..

728x90
반응형