운영체제 25

Virtual Memory

Virtual Memory Virtual Memory란? Physical Memory와 Logical Memory를 구분해주는 것. Logical Memory가 Physical Memory보다 훨씬 더 크기 때문에 실행에 필요한 부분만 메모리에 적재한다. 프로세스간 주소공간을 공유할 수 있게 해준다. Physical Memory를 신경쓰지 않고 효율적인 프로세스를 생성할 수 있게 해준다. 다음과 방식을 통해서 Virtual Memory가 구현된다 Demand Paging Data전체가 아닌 하드디스크에서 Data를 필요한 순간에만 Memory로 가져오는 것. 필요할 때에만 가져오기 때문에 I/O 입출력이 줄어든다. 메모리를 효율적으로 사용할 수 있다. 응답시간이 빨라진다. 더 많은 사용자를 수용할 수 있..

Computer Science/OS 2023.12.05

8강. 연습문제

8.4 Compare the main memory organization schemes of contiguous memory allocation, pure segmentation, and pure paging with respect to the following issues: a. external fragmentation contiguous memory allocation : 큰 메모리공간을 연속으로 할당할 수 있는 자리에 연속적으로 큰 메모리공간을 할당하기 때문에 작은 메모리공간이 남을 수 있고 그렇게 external fragmentation이 발생하게 된다. pure segmentation : Segment 단위로 메모리를 연속으로 할당하기 때문에 작은 free memory가 생기는 external ..

Computer Science/OS 2023.12.05

Memory Management (2)

Page Table Structure Paging을 위해서는 Paging Table을 효율적으로 관리하는 방법이 필요하다. Hierarchical Paging 하나의 Page Table을 여러개의 계층적인 Page Table로 쪼개는 것. Two-level Page Table방식을 사용한다. Ex. 책의 목차. Two-Level Paging Table Example Logical Address가 32bit로 구성이 되고, 페이지가 4K크기일 때 page number는 20bit → 한 테이블에 100만개의 항이 있음. → 메모리로 올라올 때 공간을 많이 차지한다. → p1 = 10bit, p2 = 10bit로 쪼갬. page offset 은 12bit → 4K크기를 위해 12비트가 필요. (p,d) → ..

Computer Science/OS 2023.12.04

Memory Management (1)

Memory Management 기법 Swapping 한정적인 메모리공간을 효율적으로 사용하기 위해 메모리 공간의 프로세스를 하드디스크로 내려보내고, 새로운 프로세스를 메모리에 올리는 것. Contiguous Allocation 한 덩어리로 붙어있는 메모리를 할당해주는 것. Paging 바둑판, 메모리 공간을 Page단위로 쪼개 관리, 할당하는 것. Segmentation 프로그램의 구성요소가 한 덩어리일 필요는 없다. 프로그램을 Segment 단위로 나눠 하나의 Segment는 연속적으로 할당하고, Segment끼리는 연속으로 할당하지 않는 것. Segementation with Paging : Paging + Segmentation Background 모든 프로세스는 실행되기 위해 메모리 위에 올려져..

Computer Science/OS 2023.12.04

7강 연습문제

7.1 Consider the traffic deadlock depicted in Figure 7.9 a. Show that the four neccessary conditions for deadlock indeed hold in this example. Deadlock이 성립하기 위해서는 Mutual Exclusion Hold and Wait No Preemption Circular Wait 를 모두 만족해야 한다. Mutual Exclusion : 각 교차로에서는 한번에 하나의 차량만 지나갈 수 있다. Hold and Wait : 다른 차들이 지나가기 전까지 기다려야 한다. No Preemption : 도로위에 있는 차가 지나가기 전에는 대체되거나 사라질 수 없다. Cicular Wait : 4개의 ..

Computer Science/OS 2023.12.02

Deadlock(2)

Banker’s Algorithm 하나의 자원이 가진 인스턴스가 여러개일 때 Deadlock을 Avoidance하는 방법 프로세스에게 Maximum 자원을 할당해줘도 Safe한지 확인하는 알고리즘 특징 Multiple Instance에 적용 가능 사전에 process가 필요로 하는 자원의 정보가 필요 자원을 얻기전에 Process가 기다릴 수도 있다. 프로세스는 자원을 정해진 시간 내에 반납해야한다. Data Structures for the Banker’s Algorithm Available : 현재 여유분. 여유 자원의 갯수. Available[j] = k 이면 j자원의 갯수가 여유가 k개 있다. Max : Process가 원하는 자원의 최댓값. Max[i][j] = K 이면 Pi가 Rj를 원하는 갯..

Computer Science/OS 2023.12.02

Deadlock(1)

Deadlocks 7강 학습목표 데드락이 무엇인지 알고 데드락에 빠지는 상황과 조건을 안다. 데드락을 예방, 회피하는 방법을 안다. DeadLock 두개 이상의 Process들이 각각의 자원을 Hold한 상태에서 다른 Process의 자원을 받길 기다리는 상태. Ex ) Semaphore A와 B가 1로 초기화 된 후 P0 -> Wait(A); Wait(B); / P1 -> Wait(B); Wait(A); Bridge Crossing Example 차량이 하나밖에 통과할 수 없는 다리를 생각했을 때, 다리 = 자원 차량 = 프로세스 다리의 중간에서 차량이 만난 상황이 데드락 상황이다. 차를 뒤로 뺄 수 없는 상황이다 = 한번 할당된 자원은 반환되지 않는다(No preempt) Starvation이 일어날..

Computer Science/OS 2023.12.01

Process Synchronization(2)

Semaphore Busy Waiting을 필요로 하지 않는 동기화 도구 🛑 Busy Waiting이란? Critical Section에 들어가기 위해 계속 while문의 조건을 검사하느라 바쁘게 기다리는 것. Semaphore는 Integer 변수의 이름을 Semaphore라고 한다. → 공유된 자원의 수를 가르키는 변수‼️ 두 표준함수 **Wait(S)와 Signal(S)**를 통해서 동작한다. Wait(S)와 Signal(S) 은 Atomic한 Operations으로 주어진 작업을 처리할 때 까지 끝까지 동작한다. Binary Semaphore : Semaphore Integer Variable이 0 or 1의 값만 가지는 것. → mutex (mutual exclusive) lock이라고도 한다...

Computer Science/OS 2023.11.30