Operation System


CPU는 논리주소를 바라본다. 밑 그림에서 20, 30, 40번지가 논리주소. 500, 510, 520, 300 등이 물리주소. Page Table은 물리메모리 안에 존재하기 때문에, 데이터 얻기 위해선 page table(물리메모리)에 접근해서 물리주소로 변환 후, 물리 메모리 접근해서 데이터 얻어와야 하니 물리 메모리 두 번 접근이 됨. 이 걸 빠르게 하기 위해 TLB에 페이지테이블 일부를 캐시해서 빠른 주소 변환 가능케함. BUT, TLB는 index로 접근하는 게 아니라 순차탐색을 해야해서 완전 탐색 시간이 걸림. 그래서 Associative register를 통해 병렬적으로 탐색 가능하게끔 구성한다. 페이지 테이블 : 가상 메모리 주소를 물리 메모리 주소로 매핑하는 역할을 한다. 프로그램이 메모..


Race Condition이 생기는 상황 3가지 1. 커널모드 수행중에 인터럽트 들어온 경우 -> 해결 : 커널의 공유변수를 건드리기 전에 인터럽트 disable시킴 2. 각각의 프로세스가 kernel 모드 공유 데이터를 수정 시 -> 해결책 : 커널모드에서 수행 중일 때는 CPU를 preempt 하지 않는다. 커널 모드에서 사용자 모드로 돌아갈 때 preempt. 3. 멀티프로세서(여러개의 CPU) 상황에서 운영체제 공유 데이터 접근할 때 * Critical Section : 공유 데이터를 접근하는 코드 자료 출처 : http://www.kocw.net/home/search/kemView.do?kemId=1226304 이화여자대학교 반효경 교수님 - 운영체제