[운영체제 OS] 메모리 관리 Memory Management
·
CS/운영체제 OS
Github Repo: pythonstrup 08 메모리 관리 Memory Management 목차 주소 Address 1-1. 주소의 종류 1-2. 주소 바인딩 address binding 메모리 관리와 관련한 용어 2-1. 동적 로딩 Dynamic Loading 2-2. 동적 연결 Dynamic Linking 2-3. 중첩 Overlays 2-4. Swapping 물리적 메모리의 관리 Allocation of Physical Memory 3-1. 물리적 메모리의 할당 방식 3-2. 연속 할당 Contiguous Allocation 3-3. 불연속 할당 Noncontiguous Allocation 불연속 할당의 기법 4-1. 페이징 Paging 4-2. 계층적 페이징 Multilevel Paging 4..
[운영체제 OS] 교착 상태 Deadlock
·
CS/운영체제 OS
Github Repo: pythonstrup 07 교착 상태 Deadlock 목차 Deadlock 1-1. 교착 상태란? 1-2. Deadlock 발생의 4가지 조건 Deadlock의 처리 방법 2-1. Deadlock Prevention 2-2. Deadlock Avoidance 2-3. Deadlock Detection and Recovery 2-4. Deadlock Ignorance 1. Deadlock - Traffic deadlock picture from [Reddit](https://www.reddit.com/r/pics/comments/6qulze/traffic_deadlock/) 1-1. 교착 상태란? Deadlock이란 일련의 프로세스들이 서로가 가진 자원을 기다리면 block된 상태를..
[운영체제 OS] 프로세스 동기화 Process Synchronization
·
CS/운영체제 OS
Github Repo: pythonstrup 06 프로세스 동기화 Process Synchronization 목차 데이터와 프로세스 1-1. 데이터의 접근 1-2. Race Condition 1-3. Process Synchronization Problem 동기화 알고리즘 2-1. 알고리즘1 2-2. 알고리즘2 2-3. 알고리즘3 동기화 하드웨어 세마포어 4-1. Semaphores 적용 4-2. Block & Wakeup 4-3. 교착과 기아 고전적인 동기화 문제 5-1. Bounded Buffer Problem 5-2. Readers & Writers Problem 5-3. 식사하는 철학자 문제 Monitor 6-1. Monitor의 개념 6-2. Bounded Buffer Problem 6-3. 식..
[운영체제 OS] CPU 스케줄링
·
CS/운영체제 OS
Github Repo: pythonstrup 05 CPU 스케줄링 - CPU Scheduling 목차 CPU 스케줄링 1-1. CPU Burst 1-2. CPU Scheduler 1-3. Dispatcher 스케줄링 알고리즘 Scheduling Algorithm 2-1. 비선점형 스케줄링 Non-Preemptive Scheduling 2-2. 선점형 스케줄링 Preemptive Scheduling 2-3. 알고리즘의 성능 척도 다양한 경우에서의 스케줄링 3-1. Multiple Processor Scheduling 3-2. Real Time Scheduling 3-3. Thread Scheduling 1. CPU 스케줄링 1-1. CPU Burst 각 단계에서 CPU를 사용하는지, I/O 작업을 수행하는..
[운영체제 OS] 프로세스 관리 Process Management
·
CS/운영체제 OS
Github Repo: pythonstrup 04 프로세스 관리 Process Management 목차 프로세스의 생성과 종료 1-1. 프로세스의 생성 1-2. 프로세스의 종료 프로세스 시스템 콜 2-1. fork 시스템 콜 2-2. exec 시스템 콜 2-3. wait 시스템 콜 2-4. exit 시스템 콜 프로세스 간 협력 3-1. 메시지 교환 Message Passing 3-2. 데이터 공유 Shared Memory 1. 프로세스의 생성과 종료 1-1. 프로세스의 생성 운영체제가 프로세스를 전부 생성하는 것이라고 생각할 수 있지만 시스템이 부팅된후 최초의 프로세스만 직접 생성하고 그 다음부터는 이미 존재하는 프로세스가 다른 프로세스를 복제 생성하게 된다. 이 때 프로세스를 생성한 프로세스를 부모 프..
[운영체제 OS] 프로세스 Process
·
CS/운영체제 OS
Github Repo: pythonstrup 03 프로세스 Process 목차 프로세스의 개념 1-1. 프로세스란 1-2. 프로세스의 상태 Process State 1-3. 프로세스 제어 블록 Process Control Block 1-4. 문맥 교환 Context Switch 스케줄링 2-1. 스케줄링을 위한 큐 2-2. 스케줄러 스레드 Thread 3-1. 스레드란 3-2. 스레드를 사용하는 이유 3-3. 스레드의 구현 3-4. 멀티스레드 Multithreaded Programming 1. 프로세스의 개념 1-1. 프로세스란 Process is a Program in Execution => 프로세스는 수행 중인 프로그램을 뜻한다. 디스크에서 파일 형태로 존재하던 프로그램이 메모리에 올라가서 수행되기 ..