전체 글78 11-2. File System overview 파일 시스템은 사용자들이 사용하는 파일들을 관리하는 운영체제의 한 부분이다. File system의 구성 1. files 파일이란 "보조기억 장치에 저장된 연관된 정보들의 집합" 이다. 파일은 보조 기억 장치 할당의 최소 단위이이다. 물리적 정의로는 Sequence of bytes(바이트들의 집합) 라 말 할 수 있다. 파일안의 내용에 따라 program file, Datafile로 분류 가능한다. program file의 에시로는 Source program, object program, executable file들이 있다. file의 형태에 따라 분류해보면 ascii코드로 이루어진 Text file과 0/1로 이루어진 Binary file이 있다. file의 속성 Name ID type Locatio.. 2022. 1. 25. 11-1. File system_Disk systme(디스크는 어떻게 이루어져있나?) 파일(데이터)는 어디에 저장이 될까? 디스크라는 HW에 저장이 된다. 그럼 우선 DISK에 대해 알아보도록하자. Disk System 우리가 일반적으로 알고있는 하드디스크를 분해해 보면 위와 같이 생겼다. Disk Pack 파일의 정보/데이터는 Disk pack 에 저장되며 비휘발성으로 데이터의 영구 저장장치이다. Disk Pack의 구성을 살펴보자자. 1. Sector > sector 는 제이터 저장/ 판독의 물리적 단위로 0/1의 데이터를 저장해 원하는 데이터를 저장 할 수있다. 2. Track > Platter 의 중심에서 같은 거리에 있는 sector들의 집합 3. Cylinder > 같은 반지름을 갖는 track의 집합 4. Platter > 양면에 자성 물질을 입힌 원형 금속판으로 데이터의 기.. 2022. 1. 25. Pintos project3 WIL 프로젝트 3는 가상 메모리에 관한 OS프로젝트 였다. 이전 프로젝트까지는 가상주소공간?을 초기화 시 프로그램의 모든 세그멘트에 대해 물리메모리로 그대로 읽어 들이는 방식이었지만 이제는 lazy load를 통해 요청되는 페이지에 대해서만 물리메모리에 올려 멀티프로그래밍시 메모리를 효율적으로 관리 하는 방법을 살펴보았다. 공부내용 10-1. Virtual Memory Management_cost model 과 HW components 10-2. Virtual Memory Management_SW components 10-3. VM. Management_Replacement Strategies_fixed allocation 10-4. VM. Management_Replacement Strategies_vari.. 2022. 1. 25. Pintos project3_Swap In/Out Swap In/Out Memorry swapping은 사용가능한 물리 메모리를 최대화 하기위한 교정과정이다. 메인메모리의 frame이 모두 할당되면 시스템은 더이상 유저프로그램이 메모리 할당을 요구해도 들어줄 수 없다. 이러한 문제의 해결책으로 현재 디스크에서 사용하지 않는 memory frame들을 교체하는 것이다. 스와핑은 OS가 하는 일이다. 시스템이 메모리 부족을 감지하고 메모리 할당요구가 들어왔을때 디스크로 방출시킬 페이지를 선택한다. 그러면 방출될 메모리 프레임의 상태가 디스크로 복사된다. 프로세스가 방출된 page에 접근을 재요구하면 OS는 해당 page를 회복시키는데 이때 디스크에 복사해둔 content를 메모리로 돌려놓는다. 방출될 페이지는 anonymous page 이거나 file-ba.. 2022. 1. 25. Pintos project3_Memory Mapped Files 이제 memory-mapped pages에 다루어 보도록 하자 어나니머스 페이지와 달리 memory-mapped pages는 file-backed mappings이다 즉 페이지 안의 데이터는 실제 존재하는 file 데이터를 미러링한 값들이다. 만약 페이지 폴트가 발생하면 물리 frame이 즉시 할당되고 contents들은 파일에서 메모리로 복사된다. memorry-mapped 페이지들이 unmapped 되거나 swapped out되면 파일에도 이러한 변경사항이 그대로 반영된다. mmap and munmap System Call mmap 과 munmap은 memory mapped files를 위한 systemcalls 이다. 현재 우리의 VM system 에서 페이지는 mmap영역에서 lazily load.. 2022. 1. 22. Pintos project3_Stack Growth project2까지 스택은 user_stack에서 시작하는 단일 페이지 였으며 프로그램의 실행은 이 크기로 제한되었다. 이제 스택공간이 증가함에 따라 필요한 페이지를 추가해 주도록 하자 추가 페이지의 할당은 오직 스택에 접근하려고 할때 할당한다. 사용자 프로그램은 만약 스택 포인터 아래에 write를 하면 버그가 난다. 이유는 실제 OS는 스택에 있는 데이터를 수정하기 위한 signal 을보내기위해 언제든 process를 interrupt한다 하지만 x86-64 PUSH 명령어는 학하기전 접근이 가능한 stack pointer인지 체크 한다 . 따라서 스택 포인터 아래 8bytes에서 페이지 fault가 발생할 수 있다. 먼저 현재 유저 프로그램의 스택포인터에서 현재 값을 획득해야 한다. 시스템콜 혹은 .. 2022. 1. 21. 이전 1 2 3 4 5 6 ··· 13 다음