본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

OS 개념 정리15

[OS] I/O System 1. I/O란? Input과 Output 즉, 입출력을 의미함. 2. I/O Mechanisms 1) CPU 제어 CPU가 I/O 장치와 메모리 사이의 모든 데이터 전송을 처리하는 기법 (1) Polling 특징 - CPU가 모든 I/O 장치의 상태를 주기적으로 조사 장점 - 간단함 - I/O 장치가 빠르고, 데이터 전송이 잦은 경우에 효율적임 단점 - CPU의 부담이 큼 (2) Interrupt 특징 - I/O 장치가 작업을 완료한 후, 자신의 상태를 CPU에게 전달 - Interrupt가 발생하면 CPU는 데이터를 주거나 받는 일을 수행함 장점 - Pooling 방식보다 overhead가 적음 - 불규칙적인 요청 처리에 적합함 단점 - Interrupt handling overhead 2) 직접 제어.. 2021. 6. 30.
[OS] File System 1. Disk System 1) Disk Pack (1) 역할 : 데이터를 영구 저장 (비휘발성) (2) 구성 Sector : 데이터 저장 혹은 판독의 물리적 단위(한 블록) Track : Platter 한 면에서, 중심으로부터 같은 거리에 있는 sector들의 집합 Cylinder : 같은 반지름을 갖는 track의 집합 Platter : 양면에 자성 물질을 입힌 원형 금속판으로, 데이터의 기록 및 판독이 가능한 기록매체 Surface : Platter의 윗면과 아랫면 2) Disk Drive (1) 역할 : Disk pack에 데이터를 기록 및 판독 (2) 구성 Head : 디스크 표면에 데이터를 기록 및 판독 Arm : Head를 고정 및 지탱 Positioner(Boom) : Arm을 지탱하고, .. 2021. 6. 28.
[OS] 가상 메모리(3) - 추가적인 고려 사항 1. Page Size Small Page Size Large Page Size Page Frame 수 증가 Page Frame 수 감소 Page Table 크기 증가 Page Table 크기 감소 I/O 시간 증가 I/O 시간 감소(*) Locality 향상 Locality 저하 Page fault 증가(**) Page fault 감소 내부 단편화 감소 내부 단편화 증가 * CPU에게 좋음 ** 참조할 Page 수가 증가하기 때문 - 일반적으로 Page size의 크기는 2^7bytes~2^22bytes까지 다양함 - 메모리 용량의 발전에 따라, Page size도 점점 커지는 경향이 있음★ 2. Program Restructuring - 가상 메모리 시스템의 특성에 맞도록 프로그램을 재구성하는 것 -.. 2021. 6. 22.
[OS] 가상 메모리 관리(2) - 페이지 교체 기법들 1. Fixed allocation의 경우 Page Frame 수가 고정되어 있는 경우에 사용 가능한 알고리즘들을 소개한다. ​ 1) Min Algorithm - Minimize page fault, Optimal solution - 앞으로 가장 오랫동안 참조되지 않을 Page를 교체 - Page reference string을 미리 알고 있어야 하기 때문에 실현 불가능한 기법 - 교체 기법의 성능 평가 도구로 사용됨 - Tie-breaking rule이 필요할 수 있음 ※ Tie-breaking rule : 우선 순위가 동일할 경우 그들을 구분할 규칙 ​ 2) Random Algorithm - 교체할 Page를 무작위로 선택 - Overhead가 낮음 ​ 3) FIFO Algorithm - 가장 오래된.. 2021. 6. 17.
[OS] 가상 메모리 관리(1) - HW/SW상에서의 관리 1. Cost Model 1) 정의 소프트웨어 프로젝트의 여러 활동을 실행하는 데 소요되는 비용이 각 단계에 대해 완전하고 일관성이 있는가를 검증하는 수단 - 컴퓨터인터넷IT용어대사전 2) 적용 - 가상 메모리의 성능을 높이기 위하여 고려함 - Page fault rate를 최소화함으로써 Context switch 및 Kernel의 개입을 최소화하는 것이 목표 ※ Page reference string : 참조한 페이지 번호 순서 ※ Page fault rate : 페이지 부재율 2. HW상에서의 관리 1) Address Translation Device 2) Bit Vectors (1) Reference Bit Vectors - 최근에 참조된 page인지 표시 - 주기적인 초기화 있음 - used bi.. 2021. 6. 15.
[OS] 가상 메모리의 의미 및 할당 기법들 1. Non-continuous Memory Allocation 1) 의미 - 사용자 프로그램을 여러 개의 block으로 분할 - 실행 시에는 필요한 block들만 메모리에 적재하고, 나머지 block들은 swap device에 존재 - Virtual memory(가상 메모리)가 이 원리를 따름 2) 구조 및 동작 Virtual address는 v=(b,d)로 표현할 수 있다. 여기서 b는 블록의 번호이고, d는 블록의 시작점으로부터 떨어진 정도에 대한 값이다. ※ d를 offset이라고도 함 Address mapping 정보 관리는 Block Map Table(BMT)이 맡으며, 이 table은 Kernel 공간에 프로세스마다 하나씩 있다. 그리고 BMT의 residence bit는 메모리상에 적재되어.. 2021. 6. 10.
[OS] 메모리 관리 1. 메모리의 계층 구조 1) 레지스터 2) 캐시 3) 주기억장치 4) 보조기억장치 ※ Block : 주기억장치와 보조기억장치 사이의 데이터 전송 단위이며, 크기는 1~4KB 정도임 ※ Word : 레지스터와 주기억장치 사이의 데이터 전송 단위이며, 크기는 16~64bits 정도임. "32비트 컴퓨터", "64비트 컴퓨터" 에서의 이 비트가 이 Word를 뜻함. 2. Address Binding 논리 주소를 물리 주소로 매핑하는 작업 1) 프로그램의 흐름 소스 코드 -> 컴파일러 -> 목적 프로그램 -> 링커 -> 실행 파일 -> 로더 -> 실행 2) Binding의 종류 (1) Compile time binding - 컴파일 때 진행됨 - 메모리에 프로세스가 적재될 위치(불변)를 컴파일러가 알 수 있는.. 2021. 6. 7.
[OS] Deadlock 1. Deadlock이란? 2개 이상의 프로세스간에 자원에 대한 요청이 뒤엉켜있어서 서로 무한히 대기하고 있는 현상 ※ Starvation과의 차이 Starvation : Ready 상태에서 대기, 발생 가능성이 있는 이벤트를 대기 Deadlock : Asleep 상태에서 대기, 발생 가능성이 없는 이벤트를 대기 2. 자원의 분류 1) 하드웨어 vs 소프트웨어 2) 선점 자원 vs 비선점 자원 : 선점 당해도 문제 없음(CPU, memory) vs 선점 당하면 문제 발생(disk drive) 3) 전체를 한 프로세스에게 할당(CPU, disk drive) vs 부분을 여러 프로세스들에게 할당(memory) 4) 동시에 사용 가능(SW program) vs 동시에 사용 불가능(CPU, memory, dis.. 2021. 6. 2.
[OS] 동기화(3) - Language-level Solution : Monitor Language-level 솔루션 : Monitor 앞서 살펴봤던 Eventcount/Sequencer기법은 Busy waiting도 없고 Starvation도 일어나지 않는 좋은 상호 배제 솔루션이지만, low-level이다보니 구체적이고 복잡한 만큼 쓰기가 다소 불편할 수 있다. 그래서 프로그래밍 언어 레벨(high-level) 기법이 생겨났으며, 그 중 대표적인 기법이 Monitor이다. 실제로 C#, C++, Java 등에서 Monitor Class를 제공하고 있다. 1. Monitor란? - Critical data와 Critical section을 모아둔 공간 - 하나의 프로세스만 진입 가능 - 사용이 쉬움 - 객체 지향 개념과 유사 2. Monitor의 구조 - Mutual exclusion.. 2021. 5. 28.