일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가테
- Project 1
- 글리치
- 마일섬
- 자 이제 시작이야
- 일지 시작한 지 얼마나 됐다고
- 아직도 실험 중
- botw
- multi-oom
- 셋업
- 글루민
- 바빠지나?
- 제발흰박
- 파란 장미
- 핀토스 프로젝트 3
- 핀토스 프로젝트 2
- alarm clock
- PINTOS
- 핀토스 프로젝트 1
- 내일부터
- 핀토스 프로젝트
- 황금 장미
- 노가다
- 핀토스 프로젝트 4
- 끝
- Today
- Total
목록코딩 삽질/OS 요약 정리 (14)
거북이의 쉼터
해당 포스팅에서는 파일 시스템에 데이터 변동이 일어났을 때의 consistency를 보존하는 방법을 다룰 것이다. 다시 cache가 수반된 read와 write의 실행과정을 살펴보면: read : 읽고자하는 블록이 cache에 있는지 살펴보고, 있다면 바로 유저에게 반환, 없다면 디스크에서 cache로 해당 블록을 가져오고 반환한다. write : write하는 내용은 바로 디스크로 넘어가지 않고 메모리 상에만 변화가 일어났다가 (write behind) OS가 디스크에 쓰기로 결정했을 때 (fsync 등의 동기적 방식 또는 주기적으로 flush되는 비동기적 방식) 변화가 반영된다. 디스크에 write를 최대한 늦추는 이유는 퍼포먼스 증대를 위해서 이지만, 이는 시스템의 안정성과 consistency에 ..
대체 핀토스 4번은 언제쯤 유지보수 끝날까? 암튼 시작. Hard Link link()는 system call의 일종으로 old file과 new file을 연결하는 역할을 한다. 이 때 생성되는 링크의 종류는 Hard Link이며, new file을 old file처럼 사용할 수 있게 한다. 그 내부에서는 실제로는 두 파일이 같은 inode를 가리키게 된다. ls -i 를 하면 inode value를 확인할 수 있는데, hard link된 파일들에서는 이들이 같은 값을 나타내는 것을 볼 수 있다. 링크된 파일들은 inode 단에서 같은 inode로 연결되기 때문에 old file과 new file은 차이가 없게 된다. 링크가 생성되면 inode의 reference count를 증가시킨다. referen..
지금까지 해왔던 것들을 다시 정리하고 가자. 우리는 지금까지 CPU 쪽에서 인터럽트, 스케줄러, 프로세스와 쓰레드 abstraction을 배웠고, 메모리 쪽에서는 MMU, VM, PM, eviction policy, TLB 등을 배웠다. 이제는 IO 파트에 위치한 abstraction만 공부하면 전체 컴퓨터와 관련된 것을 공부한 것이 된다. 네트워크와 관련된 것은 네트워크 수업 때 배워라. 앞으로 할 포스팅의 주 주제는 file system이 될 것이다. Physical device상에서 어떤 것이 유용한 abstraction이 될 지 생각할 것이다. 그 뒤에는 디스크나 플래시 메모리 같은 스토리지 HW의 특성을 배울 것이다. 마지막으로는 파일 시스템을 사용하는 어플리케이션의 패턴을 이용해 메커니즘을 설..
이번 파트에서는 파일의 데이터를 메모리에 Caching하는 것과 demand paging을 배우면서 Physical Memory Management를 하는 방식에 대해 배울 것이다. 메모리는 디스크 정보에 대한 cache로서 활용될 수 있다. 따라서 cache의 동작에 대해 알 필요가 있다. 특정 주소에 대해 읽기를 할 때, 요청하는 address가 cache 내에 있다면 그 값을 반환하고, 아니라면 해당 주소에서 값을 읽어오면 된다. 쓰기 요청을 할 때는 아키텍쳐상으로 잠시 쓰려는 값이 write buffer에 저장되었다가 cache로 주소값과 함께 요청되는데, 이 때 cache 내에 해당 주소가 존재한다면 cache의 값을 update하고, 존재하지 않는다면 read와 마찬가지로 해당 주소에서 값을 ..