일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 내일부터
- 핀토스 프로젝트 3
- 아직도 실험 중
- 핀토스 프로젝트 4
- 제발흰박
- 노가다
- 핀토스 프로젝트
- 파란 장미
- alarm clock
- multi-oom
- 바빠지나?
- botw
- 셋업
- 가테
- 끝
- 마일섬
- Project 1
- 글루민
- 핀토스 프로젝트 2
- 일지 시작한 지 얼마나 됐다고
- 핀토스 프로젝트 1
- 황금 장미
- 자 이제 시작이야
- PINTOS
- 글리치
- Today
- Total
목록코딩 삽질/OS 요약 정리 (14)
거북이의 쉼터
이번 포스팅에서는 주로 TLB와 TLB를 도입해서 파생하는 문제를 보완하는 내용을 다룰 것이다. 1. TLB란? TLB는 translation lookaside buffer의 약자로 멀티 레벨 페이지 테이블에서 발생하는 translation cost를 mitigate하기 위해 도입되었다. CPU cache는 메모리의 내용을 cache하지만, TLB는 virtual 페이지에서 physical 프레임으로의 "번역 결과"를 cache한다. 만약 cache hit이 되면 해당 번역을 사용하고, cache miss가 되면 멀티 레벨 페이지 테이블을 순회하며 직접 번역한다. 2. Translation Cost TLB를 도입하게 되면 TLB를 우선적으로 살펴보고, 확률적으로 hit이 되기 때문에 miss일 때만 페이..
드디어 면접이 끝나 미뤄놨던 요약 정리를 다시 시작한다. 사실 그렇게 빡세게 해야 할까라고 생각한 것이 중간 평균이 48이었기에 A- 컷은 기말을 정말 조지지 않은 이상 달성했기 때문이다. 그리고 교수님이 수업에 강조했거나, 직접 풀어보라고 언급한 부분이 주로 시험에 나온다는 사실을 알게 되어서 그 부분만 중점적으로 다루면 고득점을 할 수 있겠다고 생각했다. 그래서 중간보다는 요약은 설렁설렁할까 한다. 대신 거의 단순 받아적기 수준이라 분량이 뻥튀기 된다 ㅋㅋ 중간 이후에 다룰 첫 주제는 Memory Management이다. 메모리는 하드웨어이니 OS 디자이너가 해야할 첫 단계는 abstraction을 구상하는 것이다. 직접적으로 물리 메모리를 프로세스에게 노출하는 것은 protection에 위배되어 위..
이제 이것만 공부하면 시험 범위는 끝이다. 기말 때는 중간 것도 전부 포함한단다..... 기아아아아악 살려주세요 교수님... 1. Deadlock 도입부 분명 시험 보고 나서 계획되어 있었던 걸로 아는데 왜 지금 다루는지는 모르겠지만 일단 시작하자. 동기화는 안 하는 것도 재앙적인 결과를 초래하지만 잘못 다루는 것 또한 상당히 골치 아픈 문제를 초래한다. 만약 두 프로세스가 있을 때, 한 프로세스가 다른 프로세스가 잡고 있는 자원을 잡으려고 하고, 동시에 그 프로세스 또한 상대 프로세스가 들고 있는 자원을 잡으려고 하는 상황을 생각해보자. 이 때, 모든 프로세스는 서로의 자원을 잡으려고 무한정 대기하는 상태에 빠지게 된다. 이러한 상태를 교착 상태, 일명 deadlock 데드락이라고 한다. 참고로, de..
이제 그토록 강조해온 동기화를 다룰 것이다. 0. 동기화의 필요성과 critical section Concurrency에 있어 공유 상태는 유용하다. 쓰레드를 사용하면서 변수를 공유하는 것은 프로세스 간 통신보다 저렴하기 때문이다. 허나 잘못 사용하게 되면 끔찍한 문제를 일으킬 수 있다. 실행의 단위가 되는 쓰레드가 공유 변수를 사용하는 동안에 어느 때나 Context Switching을 일으킬 수 있기 때문에 이는 공유 상태의 일관되지 않은 결과를 초래하기도 한다. 예시를 들어보자. 다음과 같이 공유 자원 y에 접근하는 두 쓰레드 A, B가 있다고 하자. y의 초기값이 0이라 할 때, 쓰레드 A에서 최종적인 x의 값은 무엇이 되어야 할까? // thread A x = 1; x = y + 1; // th..