Computer Science/운영체제
-
[OS] 9-2. Virtual MemoryComputer Science/운영체제 2021. 3. 4. 02:05
# Page replacement - 다양한 캐슁 환경 - 캐슁 기법 한정된 빠른 공간(=캐쉬)에 요청된 데이터를 저장해 두었다가 후속 요청시 캐쉬로부터 직접 서비스하는 방식이다. 즉, 한 번 썼던 데이터는 빠른 접근이 가능한 캐쉬 메모리에 저장해두었다가 가까운 시기에 해당 데이터에 대한 접근이 요청되면 빠르게 제공해준다. Paging system과 더불어 cache memory, buffer caching, Web caching 등 다양한 분야에서 사용되는 방식이다. - 캐슁 기법의 운영상 시간 제약 다만, 이러한 캐슁 기법은 운영상 시간 제약이 존재한다. 교체 알고리즘이 삭제할 항목을 결정하는 일에 지나치게 많은 시간을 소요하지 않아야 한다. 예를 들어, Buffer caching이나 Web cach..
-
[OS] 9-1. Virtual MemoryComputer Science/운영체제 2021. 3. 3. 19:26
※ 이번 챕터부터는 메모리 관리 기법 중 paging 기법을 사용하는 것을 가정한다. 실제로도 대부분의 시스템은 paging 기법을 채택하고 있다. # Demand Paging 실제로 특정 page에 대한 요청이 있을 때 해당 page를 메모리에 올리는 것을 말한다. 프로그램에는 안정적인 실행을 위해 방어적으로 넣은 자주 쓰이지 않는 코드 영역들이 매우 많이 존재한다. 그렇기에 실제로 쓰이는 코드들만 메모리에 올리면, I/O 양과 메모리 사용량을 크게 감소시킬 수 있고 더 많은 사용자들이 멀티 프로세싱할 수 있는 환경이 만들어진다. Demand Paging에서 페이지 테이블의 entry에 존재하는 valid/invalid bit의 역할을 살펴보자. Invalid는 주소 영역에서 사용되지 않는 부분이나 페..
-
[OS] 8-2. Memory ManagementComputer Science/운영체제 2021. 2. 25. 18:29
# Allocation of Physical Memory 메모리는 일반적으로 Interrupt vector와 함께 낮은 주소 영역을 사용하는 OS 상주 영역과 높은 주소 영역을 사용하는 사용자 프로세스 영역 둘로 나뉜다. # 사용자 프로세스 영역의 할당 방법 1. Contiguous allocation (연속 할당) 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 하는 것이다. 연속 할당 방식은 두 가지가 존재한다. - 고정 분할 방식 프로그램이 들어갈 사용자 메모리 영역을 미리 파티션(partition)으로 나눠놓는 것을 말한다. 이 경우, 동시에 메모리에 load되는 프로그램의 수가 제한되고 최대 수행 가능 프로그램 크기도 제한된다. 위 그림을 예시로 보면 메모리 영역은 이미 고정되어 나뉘어져 ..
-
[OS] 8-1. Memory ManagementComputer Science/운영체제 2021. 2. 24. 18:17
# Symbolic Address VS Logical Address VS Physical Address 1. Symbolic Address - 프로그래머 입장에서 메모리를 다룰 때, 숫자가 아닌 변수명, 함수명 등으로 메모리를 조작하는 상징적 주소 - Symbolic Address가 compile되면 숫자로 된 Logical Address가 됨 2. Logical Address (=Virtual Address) - 프로세스마다 독립적으로 가지는 주소 공간 - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소 3. Physical Address - 실제 메모리에 올라가는 위치 - 프로그램이 실행될 때, Logical Address를 Physical Address로 주소 변환 (주소 바인딩) # 주소 ..
-
[OS] 7. DeadlocksComputer Science/운영체제 2021. 2. 12. 05:24
# Deadlock 1. Deadlock이란? 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태를 말한다. 여기서 자원이란 하드웨어와 소프트웨어 등을 모두 포함하는 개념이며, 이러한 자원을 사용하는 절차로는 Request, Allocate, Use, Release가 있다. 2. Deadlock이 발생하는 4가지 조건 Deadlock이 발생하려면 아래의 4가지 조건을 모두 만족해야 한다. - Mutual Exclusion : 매 순간 하나의 프로세스만이 자원을 사용한다. - No Preemption : 프로세스는 자원을 강제로 빼앗기지 않고 스스로 내어 놓는다. - Hold and wait : 자원을 가진 프로세스가 다른 자원을 기다릴 때, 보유 자원을 놓지 않고 계속 가지고 있는다. - ..
-
[OS] 6-2. Process SynchronizationComputer Science/운영체제 2021. 2. 10. 16:33
# 3가지의 고전적인 Synchronization 문제 1. Bounded-Buffer Problem (Producer-Consumer Problem) - Bounded-Buffer Problem이란? 유한한 크기(그림은 circular 형태)를 가진 버퍼(임시로 데이터를 저장하는 공간)의 환경에서 발생하는 문제들을 의미한다. 이 문제는 생산자-소비자 문제(Producer-Consumer Problem)라고도 불리며, 이러한 상황을 가정 할 때는 여러 개의 생산자 프로세스와 여러 개의 소비자 프로세스가 존재한다. 생산자 프로세스들은 데이터를 생성해 빈 공유 버퍼에 삽입한다. 위 그림에서는 주황색으로 칠해져 있는 동그라미가 생산자 프로세스가 데이터를 저장해 둔 공유 버퍼이고, 색이 없는 동그라미가 비어 있..
-
[OS] 6-1. Process SynchronizationComputer Science/운영체제 2021. 2. 6. 04:32
# Process Synchronization 문제 위 그림처럼 S-box(Storage-Box)에 담긴 데이터에 여러 E-box(Execution-Box)가 접근하는 경우, 복수의 E-box(여러 프로세스)들이 동시에 데이터에 접근하는 Race Condition이 발생한다. 이러한 상황에서 데이터의 최종 연산 결과가 마지막에 해당 데이터를 다룬 프로세스에 의해 원치 않는 결과로 이어질 수 있는데, 이처럼 공유 데이터에 동시 접근이 일어나 데이터의 불일치가 생기는 문제를 Process Synchronization이라고 한다. # OS에서 Race Condition이 발생하는 3가지 경우 1. kernel 수행 중 인터럽트 발생 시 Process Synchronization은 인터럽트로 인해 발생하기도 한..
-
[OS] 5-2. CPU SchedulingComputer Science/운영체제 2020. 10. 15. 03:09
# Multi-level queue Ready queue를 foreground(interactive)와 background(batch - no human interaction)으로 분리한다. 그리고 foreground에는 RR, background에는 FCFS 등으로 각 큐에 독립적인 스케줄링 알고리즘을 설계한다. 또한 어떤 큐에게 CPU를 줄 지 (그 이후에는 큐에 있는 어떤 프로세스에게 CPU를 줄 지)결정하는 작업이 필요한데, 이를 큐에 대한 스케줄링으로 해결한다. Fixed priority scheduling은 우선도를 최우선으로 하여 우선도가 높은 foreground에게 먼저 scheduling하고 그 다음 background에게 주는 방식이다. 이 방식에서는 starvation이 단점이 될 수..