Pintos Project/이론 공부14 [PintOS, Project 4] File System Implementation File System Implementation ㆍAllocation methods : File 저장을 위한 디스크 공간 할당 방법 ㆍFree space management : 디스크의 빈 공간 관리 Allocation Methods Continuous Allocation - 한 File을 디스크의 연속된 block에 저장 - 장점 : ㆍ효율적인 file 접근 (순차, 직접 접근) - 문제점 : ㆍ새로운 file을 위한 공간 확보가 어려움 ㆍ외부 단편화 ㆍFile 공간 크기 결정이 어려움 : 파일이 커져야 하는 경우를 고려해야한다. Linked Allocation - File이 저장된 block들을 linked list로 연결 : 비연속 할당 가능 - Directory는 각 file에 대한 첫번째 blo.. 2021. 3. 2. [PintOS, Project 4] File Protection File Protection File에 대한 부적절한 접근 방지 - 다중 사용자 시스템에서 더욱 필요 접근 제어가 필요한 연산들 - Read (R) - Write (W) - Execute (X) - Append (A) File Protection Mechanism 파일 보호 기법은 system size 및 응용 분야에 따라 다를 수 있음 1. Password 기법 ㆍ각 file들에 PW 부여 ㆍ비현실적 → 사용자들이 파일 각각에 대한 PW를 기억해야 함 → 접근 권한 별로 서로 다른 PW를 부여해야 함 2. Access Matrix 기법 ㆍ범위(domain)와 개체(object)사이의 접근 권한을 명시 (domain : 사용자, 개체 : 파일 이라고 생각할 수 있다.) ㆍObject : 접근 대상 (fi.. 2021. 3. 2. [PintOS, Project4] File System Overview File System 사용자들이 사용하는 파일들을 관리하는 운영체제의 한 부분 File System의 구성 - Files ㆍ연관된 정보의 집합 - Directory structure ㆍ시스템 내 파일들의 정보를 구성 및 제공 - Partitions ㆍDirectory들의 집합을 논리적/물리적으로 구분 File Concept - 보조 기억 장치에 저장된 연관된 정보들의 집합 ㆍ보조 기억 장치 할당의 최소 단위 ㆍSequence of bytes (물리적 정의) - 내용에 따른 분류 ㆍProgram file : Source program, object program, executable files 등.. ㆍData file - 형태에 따른 분류 ㆍText (ascii) file ㆍBinary file File.. 2021. 3. 2. [PintOS, Project 3] Virtual Memory Management - Variable Allocation and Consideration Working Set (WS) Algorithm Working Set - Process가 특정 시점에 자주 참조하는 page들의 집합 - 최근 일정시간 동안(Δ) 참조된 page들의 집합 - 시간에 따라 변함 - W(t, Δ) ㆍThe working set of a process at time t ㆍTime interval [t-Δ, t] 동안 참조된 pages들의 집합 (t-Δ, t]는 포함되지 않음) ㆍΔ : window size, system parameter Working set memory management - Locality에 기반을 둠 - Working set을 메모리에 항상 유지 ㆍPage fault rate (thrashing) 감소 ㆍ시스템 성능 향상 - Window size (Δ) .. 2021. 2. 19. [PintOS, Project 3] Virtual Memory Management - Replacement Strategies for Fixed Allocation Locality;지역성 프로세스가 프로그램/데이터의 특정 영역을 집중적으로 참조하는 현상 - 원인 : ㆍLoop structure in program (for문, while문) ㆍArray, structure 등의 데이터 구조 (한 구조체에서 값을 불러왔을 때, 짧은 시일 내에 그 구조체에서 다른 값을 호출할 가능성이 높다) - 공간적 지역성 (Spatial locality) ㆍ참조한 영역과 인접한 영역을 참조하는 특성 - 시간적 지역성 (Temporal locality) ㆍ한 번 참조한 영역을 곧 다시 참조하는 특성 Replacement Strategies - Fixed allocation : 한 프로세스에게 정해진 수의 page frame을 할당한다. ㆍMIN(OPT, B0) algorithm ㆍRa.. 2021. 2. 18. [PintOS, Project 3] Virtual Memory Management - SW Components Software Components 가상 메모리 성능 향상을 위한 관리 기법들 - Allocation strategies (할당 기법) - Fetch strategies - Placement strategies (배치 기법) - Replacement strategies (교체 기법) - Cleaning strategies (정리 기법) - Load control strategies (부하 조절 기법) 1. Allocation Strategies 각 프로세스에게 메모리를 얼마 만큼 줄 것인가? - Fixed allocation (고정 할당) ㆍ프로세스의 실행 동안 고정된 크기의 메모리 할당 - Variable allocation (가변 할당) ㆍ프로세스의 실행 동안 할당하는 메모리의 크기가 유동적 고려사항.. 2021. 2. 18. [PintOS, Project 3] Virtual Memory Management - Cost Model / HW Components Virtual Memory (기억장치) - Non-continuous allocation ㆍ사용자 프로그램을 block으로 분할하여 적재/실행 - Paging / Segmentation system 가상 메모리 관리의 목적 - 가상 메모리 시스템 성능 최적화 ㆍPage fault frequency (발생 빈도) ㆍPage fault rate (발생률) : Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함 -> Context switch 및 Kernel 개입을 최소화 -> 시스템 성능 향상 Cost Model - Page reference string (d) ㆍ프로세스의 수행 중, 참조한 페이지 번호 순서 ㆍω = r1r2 ... rk ... rT (프로세스가 실행되면서 참조한 페이.. 2021. 2. 18. [PintOS, Project3] Virtual Memory - Segmentation System Segmentation System - 프로그램을 논리적 block으로 분할 (segment) ㆍBlock의 크기가 서로 다를 수 있음 - 특징 : ㆍ메모리를 미리 분할하지 않음. (VPM과 유사) ㆍSegment sharing / protection이 용이함 ㆍ메모리를 동적으로 분할하기 떄문에, Address mapping 및 메모리 관리의 overhead 가 큼 -> 대신 메모리를 효율적으로 활용할 수 있다. ㆍNo internal fragmentation -> External fragmentation 발생 가능 Address Mapping - Virtual address : v = (s, d) ㆍs : segment number ㆍd : displacement in a segment - Segmen.. 2021. 2. 18. [PintOS, Project3] Virtual Memory - Paging System Non-continuous allocation - 사용자 프로그램을 여러 개의 block을 분할 - 실행 시, 필요한 block들만 메모리에 적재 -> 나머지 block들은 swap device에 적재 - 기법들 ㆍPaging System ㆍSegmentation System ㆍHybrid Paging / Segmentation System Continuous allocation - Relative address (상대주소) ㆍ프로그램의 시작 주소를 0으로 가정한 주소 - Relocation (재배치) ㆍ메모리 할당 후, 할당된 주소(allcation address)에 따라 상대 주소들을 조정하는 작업 Address Mapping Non-continuous allocation - Virtual addre.. 2021. 2. 18. Lecture 5 : Process Scheduling 다중 프로그래밍 - 여러 개의 프로세스가 시스템 내 존재 - 자원을 할당 할 프로세스를 선택해야 함 : Scheduling - 자원관리 ㆍ시간 분할 (Time sharing) 관리 -> 하나의 자원을 여러 스레드들이 번갈아 가며 사용 -> 예) 프로세서 -> 프로세스 스케줄링 (Process Scheduling) : 프로세서 사용시간을 프로세스들에게 분배 ㆍ공간 분할 (Space Sharing) 관리 -> 하나의 자원을 분할하여 동시에 사용 -> 예) 메모리 스케줄링의 목적 - 시스템의 성능 향상 - 대표적 시스템 성능 지표 (index) ㆍ응답시간 : 작업 요청으로부터 응답을 받을 때까지의 시간 ㆍ작업 처리량 : 단위 시간동안 완료된 작업의 수 ㆍ자원 활용도 : 주어진 시간동안 자원이 활용된 시간 (U.. 2021. 1. 30. Lecture 4 : 스레드 관리 (Thread Management) 스레드 - Light Weight Process (LWP) 라고도 한다. - 프로세서 활용의 기본 단위 - 제어 요소 외 코드, 데이터 및 자원들은 프로세스 내 다른 스레드와 공유 - 전통적 프로세스 = 단일 스레드 프로세스 구성요소 - Thread ID - Register set (Program Counter, Stack Pointer 등, 상위 프로세스나 타 스레드와 협업하기 위해서 필요한 것들) - Stack 장점 - 사용자 응답성 -> 일부 스레드의 처리가 지연되어도, 다른 스레드는 작업을 계속 처리 가능 - 자원 공유 -> 자원을 공유해서 효율성 증가 (커널의 개입을 피할 수 있음) (경제성과 같은 의미다.) - 경제성 -> 프로세스의 생성, context switch에 비해 효율적 (conte.. 2021. 1. 29. Lecture 3 : 프로세스 관리 작업 (job) 과 프로그램 (Program) - 작업 : 실행 할 프로그램 + 데이터 - 컴퓨터 시스템에 실행 요청 전의 상태 프로세스 (Process) - 실행을 위해 시스템(커널)에 등록된 작업 - 시스템 성능 향상을 위해 커널에 의해 관리 됨 디스크 안에 있는 상태면 job, 커널에서 실행되고 있으면 Process가 된다. 실행중인 프로그램 - 커널에 등록되고 커널의 관리 하에 있는 작업 - 각종 자원들을 요청하고 할당 받을 수 있는 개체 - 프로세스 관리 블록(PCB)를 할당 받은 개체 - 능동적인 개체 : 실행 중에 각종 자원을 요구, 할당, 반납하며 진행 Process Control Blokc (PCB) - 커널 공간 내에 존재 - 각 프로세스들에 대한 정보를 관리 자원의 개념 - 커널의 관.. 2021. 1. 29. Lecture2 : OS overview 운영체제의 역할 - 편리성 - 효율성 : HW/SW의 리소스관리 - Process (실행 주체) and Thread Management - System Management 안전 상의 이유로 사용자가 커널을 직접 조작하게 해서는 안된다. 필요 시에는 OS에 System Call Interface를 사용해서 간접적으로 커널을 조작하도록 한다. (System Call Interface : 커널이 제공하는 기능들 중에서 사용자가 사용할 수 있는 기능들) 운영체제의 구분 - 동시 사용자 수 (Single or Multi : ) 1) 단일 사용자 : 한 명의 사용자만 시스템을사용 가능 (개인용 장비 등) -> 한명의 사용자가 모든 시스템 자원 독점 -> 윈도우, 도스, 안드로이드 등 -> 자원관리 및 시스템 보호 .. 2021. 1. 28. Lecture1 : 운영체제 강의 OS란? - 하드웨어 등의 컴퓨터 자원들을 를 효율적으로 관리하는 프로그램 하드웨어엔 크게 세 가지가 있다. 1) 프로세서 : 계산하는 장치 (CPU, GPU 등) 2) 메모리 : 저장하는 장치 3) 주변장치 : 키보드, 모니터 등의 IO장치, 네트워크 장치 1. 프로세서 - 연산을 수행 - 컴퓨터의 모든 장치의 동작 제어 레지스터 : 프로세서 내부에 있는 메모리 - 프로세서가 사용할 뎅터 저장 - 컴퓨터에서 가장 빠른 메모리 (대신에 용량을 적다) 레지스터의 종류 : - 용도에 따른 분류 : 전용 레지스터 (목적이 있음), 범용 레지스터 - 변경 가능에 따른 분류 : 사용자 가시 레지스터, 사용자 불가시 레지스터 - 저장하는 정보의 종류에 따른 분류 : 데이터 레지스터, 주소 레지스터, 상태 레지스터 .. 2021. 1. 28. 이전 1 다음