본문 바로가기

Computer Science/운영체제15

[OS] CPU 스케줄링이란? (CPU 스케줄링이 필요한 상황, CPU 성능 평가 기준, 스케줄러, CPU 스케줄링 알고리즘) 목차 CPU 스케줄링이란? CPU 스케줄링이 필요한 상황 CPU 스케줄링 성능 기준 CPU 스케줄러 종류 장기 스케줄러 중기 스케줄러 단기 스케줄러 CPU 스케줄링 알고리즘 분류 : 선점형 비선점형 선점형 비선점형 CPU 스케줄링 알고리즘 종류 (1) FCFS (First Come, First Served) (2) SJF (Shortest Job First) (3) SRF/SRTF (Shortest Remaining First) (4) Priority (5) RR (Round Robin) (6) MLQ (Multi Level Queue) (7) MLFQ (Multi Level Feedback Queue) 1. CPU 스케줄링이란? 운영체제는 멀티 스레드를 제공함으로써, 우리가 컴퓨터를 사용할 때 동시에 .. 2024. 1. 22.
[OS] Race Condition과 동기화란? (Race Condition 발생 상황, 임계영역, 뮤텍스, 세마포어, 모니터) 목차 Race Condition과 동기화란? Race Condition이 발생할 수 있는 상황 임계영역 (Critical Section) Race Condition 해결 방법 (1) 뮤텍스 (Mutex) (2) 세마포어 (Semaphore) (3) 모니터 (Monitor) 뮤텍스, 세마포어, 모니터 비교와 결론 1. 경쟁 상태(Race Condition)와 동기화(Synchronized)란? 여러 개의 프로세스나 스레드가 하나의 공유 자원에 접근할 때, 접근 순서에 따라 실행 결과가 달라지는 상황을 발생할 수 있다. 결국 공유된 자원의 일관성을 보장할 수 없는 것을 의미하며, 이를 경쟁 상태라고 말한다. 경쟁 상태를 막기 위해 프로세스나 스레드가 공유하는 자원들의 일관성을 보장하는 것이 동기화이다. 따라.. 2024. 1. 20.
[OS] 스레드와 동기화 문제란? (스레드 특징과 장단점, 동기화 문제, 멀티프로세스보다 멀티스레드를 사용하는 이유) 목차 스레드란? 스레드 특징과 장단점 동기화 문제란? 스레드 구성 : TCB (Thread Control Block) 프로세스와 스레드 비교 멀티 프로세스와 멀티 스레드 멀티 프로세스보다 멀티 스레드를 사용하는 이유 1. 스레드란? 스레드를 설명하기 전 프로그램과 프로세스의 차이를 설명하고, 프로세스에서 더 작은 작업의 단위인 스레드를 설명해보려 한다. 프로그램은 컴퓨터 디스크에 저장되어 있는 정적 프로그램이다. 프로그램을 실행시키고 싶다면 CPU에게 메모리를 할당받는데, 이것을 프로세스라고 부른다. 따라서 프로세스를 실행 중인 프로그램, 혹은 메모리에 올라간 프로그램으로도 부를 수 있는 것이다. 프로그램은 명령어들의 집합으로 구성되어 실행되는데, 스레드는 프로세스에서 실행 중인 명령어의 단위이다. 따라.. 2024. 1. 17.
[OS] 프로세스 간의 통신, IPC란? (프로세스 간 통신이 필요한 이유, IPC 기법과 특징) 목차 IPC 개념 프로세스 간의 통신이 필요한 이유 IPC 방식 IPC 종류 : Shared Memory IPC 종류 : Memory Passing IPC 종류 : Socket 정리 1. IPC란? 안정성을 위해 운영체제는 본인 프로세스에 할당된 메모리만 접근할 수 있도록 제한한다. 당연하게도 만약 다른 프로세스의 code 및 data 영역에 접근해 실행하거나 수정할 수 있다면, 어떻게 될까? 이는 운영체제 권한의 의미가 사라지고 매우 위험하다. 하지만 프로세스 간의 자원과 데이터가 공유해야 하는 상황이 발생할 수 있다. 독립적인 공간을 갖는 프로세스의 데이터를 공유하기 위해 필요한 별도의 통신 메커니즘이 IPC(InterProcess Communication)인 것이다. 2. 프로세스 간의 통신이 필요.. 2024. 1. 17.
[OS] 프로세스와 컨텍스트 스위칭이란? (프로세스 상태와 관리, 프로세스 구조와 구성, 컨텍스트 스위칭 오버헤드) 목차 프로세스란? 프로세스 상태와 관리 프로세스 구조 : 프로세스가 접근할 수 있는 메모리 구조 프로세스 구성 : PCB (Process Control Block) 컨텍스트 스위칭이란? 컨텍스트 스위칭 과정 컨텍스트 스위칭과 오버헤드 1. 프로세스란? 프로그램은 단순히 디스크에 저장되어 있는, 기계어로 작성된 실행할 수 있는 파일을 의미한다. 컴퓨터는 프로그램을 실행하기 위해 CPU에게서 메모리를 할당받아 프로그램을 메모리에 적재시켜 실행하는데, 이를 프로세스라고 한다. 따라서 프로세스를 실행 중인 프로그램, 혹은 메모리에 올라간 프로그램으로 칭하기도 한다. 프로그램 : 디스크(보조 기억장치)에 저장되어 있는 passive한 개체 프로세스 : 메모리(주 기억장치)에 적재되어 있는 active한 개체 2... 2024. 1. 9.
[OS] 인터럽트란? (인터럽트가 필요한 이유, 인터럽트 동작 방식, 종류, 한번에 여러개의 인터럽트가 발생한다면?) 목차 인터럽트란? 인터럽트가 필요한 이유 인터럽트 동작 방식 인터럽트 종류 한 번에 여러 개의 인터럽트가 발생한다면? 1. 인터럽트란? 프로그램이 동작하고 있을 때 하드웨어 처리(주로 입출력 연산) 혹은 예외 상황에 대한 처리가 필요할 때, CPU에게 이를 알려 처리할 수 있도록 하는 일종의 신호이다. 예를 들어, 키보드 입력이 들어왔을 때 실행 중이던 프로그램을 중단하고 키보드 입력을 수행하는데, 이때 인터럽트를 통해 CPU에게 입출력 처리가 필요함을 알리는 것이다. 이후 인터럽트에 대한 처리를 끝내면 다시 작업 중이던 프로그램을 실행한다. 2. 인터럽트가 필요한 이유 일단 입출력 연산이 발생했을 때 구체적인 과정을 설명해보려고 한다. 메모리 및 I/O 장치 등의 하드웨어는 컨트롤러가 처리하는데, 오가.. 2024. 1. 6.