본문 바로가기

EH 운영체제 강의9

Memory Management 메모리에는 Logical address와 Physical address가 있다. Logical address (=virtual address) : - 프로세스마다 독립적으로 가지는 주소 공간 - 각 프로세스마다 0번지부터 시작 - CPU가 보는 주소는 logical address임 Physical address : - 메모리에 실제 올라가는 위치 주소 바인딩 (Address binding) : 주소를 결정하는 것. Symbolic Address --> Logical Address --> Physical Address 주소 바인딩에는 3가지 종류가 있다. 1. Compile time binding - 물리적 메모리 주소(physical address)가 컴파일 시 알려짐 - 시작 위치 변경 시 재 컴파일 .. 2022. 8. 23.
Deadlock deadlock (교착 상태) : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태. Resource (자원) : - 하드웨어, 소프트웨어 등을 포함하는 개념 - ex) I/O device, CPU cycle, memory space, semaphore 등 - 프로세스가 자원을 사용하는 절차 : Request, Allocate, Use, Release Deadlock Example 1 - 시스템에 2개의 tape drive가 있다. - 프로세스 P1과 P2 각각이 하나의 tape drive를 보유한 채 다른 하나를 기다리고 있다. Deadlock Example 2 - binary semphores A and B (아래 캡처) --> 즉 P0, P1 모두 A, B 둘 다 필요한 상황에서 P.. 2022. 8. 21.
Process Synchronization process synchronization에 대해 학습하기 전에 먼저 시스템 안에서 데이터가 접근되는 패턴에 대해서 간단하게 알아보자. 위 그림처럼 연산을 위해서 연산할 데이터를 가져오고, 연산된 결과를 어딘가에 저장하는 것이 시스템 어느 곳에서나 작동하는 메커니즘이다. 데이터를 저장하는 곳을 storage box, 연산하는 곳을 execution box라고 하면 Execution Box가 'CPU'일때, Strorage Box는 '메모리', Execution Box가 '컴퓨터 내부'일때, Strorage Box는 디스크, Execution Box가 '프로세스'일때, Strorage Box는 '해당 프로세스의 주소 공간' 일 수 있을 것이다. 만약 데이터를 읽기만하면 누가 어디서 읽든 몇 개의 박스가 데.. 2022. 7. 10.
CPU 스케쥴링 CPU 스케쥴링 CPU를 어떤 프로세스에 얼마나 할당할지를 정해준다. CPU 스케쥴러는 운영체제 안에 있는 기능 중 하나이다. 프로그램은 IO작업과 CPU의 연산을 돌아가며 수행한다. 아래의 그림과 같다. CPU burst : CPU의 명령을 처리하는 부분 I/O burst : I/O 요청을 처리하는 부분 (즉 I/O 요청의 처리를 기다리는 시간) 프로그램마다 서로 CPU와 I/O burst를 번갈아가면서 수행되는 수는 물론 다를 것이다. 주로 일반 사용자들이 사용하는 상용 프로그램들은 번갈아가는 수가 굉장히 많을 것이고(I/O 처리가 많이 발생하므로), 엄청난 양의 계산을 해야하는 프로그램은 CPU 수행(CPU burst)이 압도적으로 많을 것이다. 아래는 CPU burst time의 분포이다. 여러 .. 2022. 7. 1.