. 'Pintos' 태그의 글 목록
본문 바로가기

Pintos7

[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, 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.
[PintOS, Project2] System Call 0. System Call이란? 시스템 콜은 사용자가 커널 영역에 접근하고 싶을 때, 원하는 목적을 대신해서 작업하는 프로그래밍 인터페이스이다. 그렇기 때문에 시스템 콜은 커널 모드에서 실행되고, 작업 후 사용자 모드로 복귀한다. PintOS에서는 이를 시스템 콜 핸들러를 통해 시스템 콜 (halt, exit, create, remove)를 호출한다. 시스템 콜을 호출할 때, 원하는 기능에 해당하는 시스템 콜 번호를 rax에 담는다. 그리고 시스템 콜 핸들러는 rax의 숫자로 시스템 콜을 호출하고, 해당 콜의 반환값을 다시 rax에 담아서 intr frame(인터럽트 프레임)에 저장한다. 1. Syscall Handler @/userprog/syscall.c /* The main system call i.. 2021. 2. 17.
[PintOS, Project 1] Alarm Clock 구현 2021/01/31 - [Pintos Project/Project 1] - [PintOS, Project 1] 1/30 : 공부 노트 - 각종 관련 함수들 1. Thread 자료 구조 수정 @/include/threads/thread.h struct thread { /* Owned by thread.c. */ tid_t tid; /* Thread identifier. */ enum thread_status status; /* Thread state. */ char name[16]; /* Name (for debugging purposes). */ int priority; /* Priority. */ /* Shared between thread.c and synch.c. */ struct list_elem.. 2021. 2. 1.