본문 바로가기

Information Technology/OS

(25)
[운영체제] Disk Management & Scheduling 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 디스크 관리 최소 단위 -> 섹터 외부에서는 논리적 블록 단위로 디스크를 관리. 이 논리적 블록이 섹터에 맵핑이 되어서 디스크를 관리. 섹터 0번은 디스크에서 가장 바깥쪽 실린더의 첫 번째 트랙의 첫 번째 섹터. 주로 부팅 영역을 관리 - Seek time: 헤드가 해당 실린더(트랙)로 움직이는 데 걸리는 시간. 이게 디스크 접근 시간에서 가장 큰 비중을 차지함. 일종의 기계 장치가 이동하기 때문에 시간이 오래 걸림 - Rotational latency: 디스크가 회전을 해서 디스크 헤드까지 오는 시간. - Transfer time: 실제로 데이터를 읽고/쓰는 시간. 굉장히 적은 시간을 차지. * Disk bandwidth: ..
[운영체제] File System Implementations(2) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) Page cache: 페이지 단위(4KB) Buffer cache: 파일 입출력 측면. 운영체제가 사용자의 요청을 받아서 디스크에서 가져온 정보를 사용자에게 바로 주지 않고 buffer cache에 저장한 뒤에 전달. 이후에 버퍼에 저장된 내용을 요청하면 다시 디스크까지 가지 않고 버퍼에서 데이터를 전달. 논리적 블록(디스크의 섹터, 예전에는 512Byte. 페이지 단위인 4KB에 비해 작음) 예전에는 버퍼 캐시와 페이지 캐시를 구분해서 사용했다면, 최근에는 Unified Buffer Cache를 많이 사용. 버퍼와 페이지 캐시를 통합. 버퍼 캐시의 단위도 작은 단위가 아닌 페이지와 동일(4KB)한 단위의 블록을 사용함. 페이..
[운영체제] File System Implementations 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 테이프: 순차 접근만 가능. 건너뛰기 불가능 하드 디스크, 플래시 메모리: 건너뛰기 가능. 직접 접근 가능한 매체 1) Continguous Allocation start: 시작 위치 length: 길이 mail의 start가 19이고 length가 6 => 19번 ~ 24번까지(6개)가 mail의 파일 데이터 디렉터리: 디렉터리 밑에 있는 존재하는 파일들의 메타 데이터 정보. - 단점: 1) 파일들의 길이가 균일하지 않기 때문에 중간의 free block으로 인한 외부 조각 발생 2) 파일 생성 이후에 연속 할당이 가능하지 않은 크기로의 확장 제약 -> 이를 위해 미리 메모리상에서 빈 공간을 확보하는 방법 -> 당장 사용하지..
[운영체제] File Systems 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 메모리 -> 주소를 통해 접근하는 단위 파일 -> 이름을 통해 접근하는 단위 리눅스 같은 OS에서는 단순히 데이터 저장 외에 장치를 관리하기 위해 파일 시스템을 사용 - Operation: 생성, 읽기, 쓰기, reposition, open, close 대게의 파일 읽기 -> 파일의 시작 부분부터. 파일을 한 번 읽으면 파일의 포인터가 다음 위치로 자동 이동. 필요에 따라 파일의 시작 부분, 혹은 현재 위치 포인터 부분이 아니라 특정 부분부터 읽거나 쓰고 싶을 때 그 포인터를 설정하는 연산이 reposition(lseek) 연산 * Open: 파일의 메타 데이터를 디스크에서 메모리로 올려놓음 - File attribute(me..
[운영체제] Virtual memory(2) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 캐싱 기법: 한정된 빠른 공간에서 데이터를 저장해서 다음에 같은 요청이 오면 느린 메모리까지 가지 않고 속도가 빠른 캐시에서 바로 처리 * cache memory: CPU와 메인 메모리 사이에 존재. * web caching: 브라우저에서 웹서버에 페이지를 요청할 때, 사전에 호출했던 페이지라면 굳이 웹서버까지 가지 않고 캐시에서 바로 가져옴 캐시 replacement에서 시간 제약: replacement에 너무 많은 시간이 소요되면 안 됨. LRU(가장 예전에 참조): 캐시 안에 n개의 데이터가 있을 때, 일단 최근에 호출된 프로세스를 MRU page로 보내면 되기 때문에 시간 복잡도가 O(1)(비교가 필요 없음) LFU(가..
[운영체제] Virtual memory(1) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) Virtual memory -> 전적으로 운영체제가 관리 Demand Paging: 해당 페이지가 요청이 됐을 때, 그때 메모리에 page를 올림 좋은 소프트웨어일수록 방어적인 소프트웨어 한정된 메모리 공간에서, 더 의미 있는(필요한) page를 올리기 위한 기법 -> 응답 시간이 좋아짐 Invalid bit: 1) 논리적 메모리에 존재하는 주소가 물리적 메모리에는 올라가 있지 않을 때 표시 2) 물리적 메모리에서는 할당하지 않는 영역이지만, 논리적 메모리에서만 할당하는 영역일 때에도 표시 address translation을 할 때 찾아간 주소가 invalid bit으로 set되어있으면 "page fault"를 날림. 이렇게..
[운영체제] Memory management(4) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) 1) CPU가 segment table의 번호인 s와, s에서 얼마나 떨어져 있는지 나타내는 offset값 d를 전달. segment table에는 물리적 메모리의 시작으로부터 얼마나 떨어져 있는지 나타내는 base와, 그 엔트리의 크기인 limit 값이 저장되어 있음. STBR(Segment Table Base Register): segment table이 메모리의 어디에 위치해있는지 나타냄(시작 위치) STLR(Segment Table Length Regist): segment table의 전체 길이(크기)인 s의 값. segment는 실제적으로 나눠지는 수가 많지 않음. table을 위한 memory 낭비는 segment..
[운영체제] Memory management(3) 이 글은 개인의 학습을 목적으로 정리한 글입니다. 이점 참고하고 읽어주세요;) TLB를 통해 페이지 테이블 접근에 필요한 속도를 효과적으로 줄일 수 있기 때문에 다단계 페이징을 사용해도 실제로 페이지 테이블에 접근하는 데 소요되는 시간이 엄청 크지는 않음. 페이지 테이블-> 사용 가능한 메모리의 크기만큼 존재함. 때문에 사용되지 않는 페이지에 대한 주소 역시 페이지 테이블에는 존재함. 사용 가능한 페이지에 대한 주소에는 valid bit, 사용하지 않는 페이지에 대한 주소에는 invalid bit. 즉, 실제로 물리적 메모리에 올라가지 않는 논리적 주소는 invalid bit가 입력됨 Protection bit: page에 대한 접근 권한. 페이지 테이블 -> 프로세스마다 독립적으로 존재. 본인의 페이지..