Computer Science/Operating System
[운영체제] File System Implementation
본 내용은 [Operating Systems : Three Easy Pieces] 및 부산대학교 안성용 교수님의 운영체제 수업을 참고하였습니다. 파일 시스템을 구현하려면 어떻게 해야할까. VSFS(Very Simple File System)이라는 가상의 파일 시스템을 예로 들어 이해해보자. VSFS VSFS라는 이 가상의 파일 시스템의 특징을 먼저 살펴보자면, - Disk를 블록 단위로 나눔(한 블록당 4KB) - 블록의 사이즈는 sector size의 배수 - 대부분의 disk block 들은 user data를 저장하기 위해 사용됨 - 아주 작은 부분만 file system의 metadata를 저장하기 위해 사용됨 또, inode를 어떻게 저장할지도 고려를 해야한다. 각각의 inode는 file의 m..
[운영체제] File System
본 내용은 [Operating Systems : Three Easy Pieces] 및 부산대학교 안성용 교수님의 운영체제 수업을 참고하였습니다. power가 꺼진 후에도 data를 보관할 수 있도록 하는 것이 Persisten Storage의 개념이며 대표적으로 - Hard disk drive(HDD) - Solid-state storage device(SSD) 가 있다. CPU와 Memory에 했던 것처럼 이 storage에도 가상화가 필요하다. Storage virtualization의 두 가지 중요한 abstraction은 - File - Directory 이다. 파일과 디렉토리는 익숙한 개념이라 거부감은 들지 않지만 과연 이러한 파일시스템이 어떻게 구현되고, 추상화되는지 한번 알아보자. Abstr..
[운영체제] Thread(쓰레드)
본 내용은 [Operating Systems : Three Easy Pieces] 및 부산대학교 안성용 교수님의 운영체제 수업을 참고하였습니다. Three Easy Pieces 중 첫번째 piece는 Virtualization 즉 가상화였다. 하나의 물리적 CPU를 다수의 가상 CPU로 확장해서 마치 여러 개의 프로세스가 동시에 실행되는 듯한 환상을 만들고, 또한 개별적인 process가 모두 독립적으로 많은 가상 메모리를 가지는 것처럼 느끼게 하는 address space라는 개념을 배웠다. 즉, CPU와 Memory의 virtualization에 대해서 다뤘다. 이제는 병행성 즉 Concurrency에 대해서 다루게 된다. Thread 소프트웨어가 진보하면서 하나의 프로그램에서 복잡한 동시 작업을 요..
[운영체제] Swapping
본 내용은 [Operating Systems : Three Easy Pieces] 및 부산대학교 안성용 교수님의 운영체제 수업을 참고하였습니다. 앞에서는 address space가 매우 작아서 모두 physical memory에 할당이 된다고 가정하였지만, 실제로는 address space의 크기도 크고 수많은 process가 실행되므로 physical memory 의 공간이 충분하지 않다. 따라서, 추가적인 레벨의 메모리 계층이 필요하다. (현대 운영체제는 hard disk가 그 역할을 하고 있음) 위의 그림은 memory hierarchy를 보여주고 있는데, 밑의 층이 위의 층의 "backing store" 역할을 한다. 즉, cache는 register의 backing store 역할을 하고 mai..
[운영체제] Project #1
본 내용은 부산대학교 정보컴퓨터공학부 안성용 교수님의 [운영체제] 수업의 과제 내용을 참고하였습니다. System call 이란? User mode 에서 Kernel mode로 접근하게 해주는 interface이다. Trap Handling Process 아래의 그림을 보자. Process P는 user mode이므로 자기 자신의 memory만을 볼 수 있다.(자기 자신의 address space) 이 때, Process P가 kill() system call을 호출했을 때를 생각해보자. xv6 에서는 eax 레지스터를 이용해서 system call number를 전달받게 설계되어있다. 이 때 알아둬야 할 사항은, system call 또한 trap의 한 종류라는 것이다. 우측의 초록색 글자로 trap-..
[운영체제] Smaller Tables -Page Directory
본 내용은 [Operating Systems : Three Easy Pieces]를 참고하였습니다. paging도 좋고, page table도 좋고 다 좋다. 근데 한가지 문제점이 있다. 아래의 예를 보자. 32-bit address space에서 Page 하나의 크기가 4kB이고, page table entry 가 4-byte 라고 하자. 그렇다면 page 의 개수는 2^32 / 2^12 = 2^20 = 1M 개가 된다. page table entry 하나당 4-byte이므로 page table size 는 4MB 가 된다. 그런데 process 하나 당 page table 을 위해 이렇게 큰 메모리를 차지한다면, 실제로는 정말 많은 양의 메모리가 필요할 것이다. page의 크기를 4KB에서 16KB로..