본문 바로가기

운영체제

(14)
[운영체제] I/O Systems I/O HardwareOS는 수많은 I/O 하드웨어를 지원하기 위해 규격화된 명령을 내림공통적 개념Port: I/O 디바이스의 관문Bus: 데이터가 전송되는 통로Controller: I/O 디바이스 안에 있는 제어하는 자체 CPUI/O에 명령을 내림; 디바이스의 controller 내 register에 명령어를 써줌I/O portStatus register: 디바이스의 상태를 나타냄, busy bit/error bitControl register: 명령어를 써줌Data-in register: 디바이스가 데이터를 읽어서 임시로 저장하는 곳Data-out register: OS가 데이터를 써주기 위해 있는 공간Pollingstatus register 값이 busy bit이면 명령을 내리면 안됨bit chec..
[운영체제] Mass Storage Structure (2차 저장 장치) 하드 디스크 구조 - Platter의 양면에 자석을 입혀서 사용 가능- 이론적으로 Platters 하나 당 head 2개 붙을 수 있음- 각 head는 Spindle이라는 축에 붙어 있음- Spindle은 회전함  - head가 왔다갔다가 하면서 안쪽 바깥쪽의 데이터를 읽음- Platter는 시스템이 켜진 순간부터 기본적으로 계속 돌고 있음- head가 특정 위치에 가면 그 위치부터 원이 하나 생김 -> track- 한 track 안에 데이터가 다 적혀 있으면 head를 움직이지 않고도 데이터를 다 읽을 수 있음- Seek Time: 가장 오래 걸리는 시간, head가 움직이는 시간- Rotation Delay: head가 원하는 위치로 갔을 때 원하는 데이터가 올 때까지 기다리는 시간 - Spindle..
[운영체제] File System - 운영체제의 구성요소 중 유일하게 별도로 판매되는 부분- 2차 저장 장치를 다루기 때문에 굉장히 느림 -> 다양한 복잡한 기술이 들어감 File데이터나 프로그램을 담는 그릇구조None: words, bytes의 시퀀스Simple record structure: 한 덩어리의 데이터가 라인으로 구분되는 것Complex Structure: Formatted document, Relocatable load fileOS, Program이 구조 결정File Attributes(File Metadata); 파일에 대한 정보Name: 데이터를 잘 표현할 수 있는 이름으로 지음Type: 데이터 타입을 보여주는 것Location: 현재 저장장치에 담겨있는 위치Size, Protection, Time, Date, user..
[운영체제] Virtual Memory(2) 프로세스에게 몇 개의 프레임이 할당되는지 결정해야 함 -> Allocation of FramesHW/SW 측면에서 요구사항이 있음instruction 수행 과정에서 page fault가 안 나려면 최소 6개의 페이지 필요Loop 내의 page는 한꺼번에 allocate 되는 것이 유리함그렇지 않으면 매 loop page fault 발생 Fixed Allocation프로세스의 크기에 따라 고정적인 프레임 개수 할당하는 방식, 크기 비례 할당Priority Allocation프로세스 중요도 기반 프레임 할당중요도 높은 프로세스는 빨리 끝나야 됨 -> 프레임 많이 할당 -> page fault(I/O) 적게 발생 -> waiting 상태 감소 => 크기나 중요도만으로 프레임을 할당했을 때 너무 많이 page ..
[운영체제] Virtual Memory (1) 가상 메모리는 공간 사용의 효율성을 높이기 위해 등장Background이론적으로는 모든 프로세스의 주소 공간이 메모리에 올라와있어야 하지만(폰 노이만 머신의 기본 원칙), 실질적으로는 그럴 필요가 없음현재 접근하는 부분만 메모리에 있으면 프로그램 실행에는 문제 없음실제로 CPU가 접근하는 부분만 메모리에 올려 보자 -> 메모리 절약, 동시에 실행되는 프로세스의 개수 증가(프로세스의 일부만 메모리에 올라오니까)그러면 원칙이 깨져버림 -> 원칙은 지키자CPU한테는 프로세스의 주소 공간이 전부 올라 와있다고 사기 치고, 혹시나 안 올라와있는 부분에 CPU가 접근하면 OS가 재빨리 올려줘(페이지 교체)logical memory와 physical memory의 완벽한 분리Virtual Memoryphysical ..
[운영체제] Memory Management (2) Hierarchical Paging Page table size 구하기 / 32bit address, 4KB page size 32bit CPU 혹은 OS; I/O단위가 32bit, 입출력이 32bit 단위로 => 32bit 주소체계 -> logical address space 최대 주소 2^32-1; 크기 = 2^32 -> page size 4KB(=2^12) -> 2^32 / 2^12 = 2^20(=1 million) 개의 logical pages -> 1 million 2^20 page table entries -> 각 page table entry당 physical 주소 저장, 주소 체계가 32 비트니까 32비트 즉 4 Bytes 필요 -> 2^20마다 4 Bytes가 필요, 프로세스 당 page..
[운영체제] Memory Management (1) 기본적으로 메모리 관리는 CPU가 프로그램을 수행할 수 있도록 만들어 주는 것 명령어 가져올 때 메모리에서 주소 가져옴 -> 효율적 관리 필요 메인 메모리는 느려, 캐시 사용 Binding 변수의 주소를 실제로 매핑시키는 것, 메모리 상 물리 주소를 변수의 주소를 매핑시키는 것 binding 시점에 따라 3가지로 나뉨 Compile time binding: 컴파일 할 때 매핑 -> 컴파일되면 프로그램 코드 안에 변수 주소가 하드코딩됨 프로그램이 무조건 커널 다음 번지에 올라간다고 해놓음 다른 컴퓨터에서 실행된다면 커널의 크기가 달라져 -> 프로그램 시작점이 달라져 -> 다시 컴파일해야함; flexibility 매우 떨어져 Load time binding: 프로그램 시작 프로세스 위치 0번지라고 가정, 상..
[운영체제] Deadlocks 프로그램 코드에 필요한 모든 제반 조건들 - 리소스 리소스가 확보되어야 프로세스가 일을 할 수 있음 데드락 발생 조건 Mutual exclusion: 상호 배제 조건, 어떤 프로세스가 자원을 쓰고 있으면 다른 프로세스는 그 자원을 쓸 수 없다는 것 No preemption: 어떤 프로세스가 자원을 잡고 있으면 자발적으로 놓기 전까진 다른 프로세스가 사용할 수 없음, 강제로 뺏지 않음 Hold and wait: 모든 프로세스는 확보한 자원은 손에 꼭 쥐고 있고 나머지 자원을 확보하기 위해 기다린다는 것 Circular wait: P1이 P2의 자원을 기다리고, Pn-1이 Pn의 자원을 기다리고, Pn이 P0의 자원을 기다리는 것처럼 원형 대기 방식이 된다는 것 Resoure-Allocation Graph,..