파일 시스템 운영 체제가 저장 매체에 파일을 쓰기 위한 자료구조 또는 알고리즘 파일 시스템이 만들어진 이유 (블록) 0과 1의 데이터를 어떻게 저장매체에 저장할까? 미트로 관리하기에는 오버헤드가 너무 큼 블록 단위로 관리하기로 함 (보통 4KB) 블록마다 고유 번호를 부여해서 관리 파일 시스템이 만들어진 이유 (파일) 사용자가 각 블록 고유 번호를 관리하기 어려움 - 추상적(논리적) 객체 필요 : 파일 사용자는 파일단위로 관리 - 각 파일에는 블록 단위로 관리 파일 시스템이 만들어진 이유 (저장 방법) 저장매체에 효율적으로 파일을 저장하는 방법 가능한 연속적인 공간에 파일을 저장하는 것이 좋음 외부 단편화, 파일 사이즈 변경 문제로 불연속 공간에 파일 저장 기능 지원 필요 블록 체인 : 블록을 링크드 리..
페이지 폴트 (page fault) 어떤 페이지가 실제 물리 메모리에 없을 때 일어나는 인터럽트 운영 체제가 page fault가 일어나면 해당 페이지를 물리 메모리에 올림 생각해보기 페이지 폴트가 자주 일어나면? 실행되기 전에 해당 페이지를 물리 메모리에 올려야 함 - 시간이 오래 거림 페이지 폴트가 안 일어나게 하려면? 향후 실행/참조될 코드/데이터를 미리 물리 메모리에 올리면 됨 - 앞으로 있을 일을 예측해야한다 -> 신의 영역이다 페이지 교체 정책 (page replacement policy) 운영체제가 특정 페이지를 물리 메모리에 올리려 하는데 물리 메모리가 다 차있다면? 기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고 (저장) 새로운 페이지를 해당 물리 메모리 공간에 올린다 페이지 ..
페이징 시스템 (paging system) 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리 하드웨어 지원이 필요 리눅스에서는 4KB로 paging 페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용 페이징 시스템 구조 page 또는 page frame : 고정된 크기의 block (4KB) paging system : 가상 주소 v = (p, d) p : 가상 메모리 페이지 d : p안에서 참조하는 위치 페이지 크기가 4KB 예 가상 주소의 0비트에서 11비트가 변위 (d)를 나타내고 12비트 이상이 페이지 번호가 될 수 있음 페이지 테이블 (page table) * page table 물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑..
가상 메모리 (Virtual Memory System) * 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음 폰노이만 구조 기반이므로 코드는 메모리에 반드시 있어야 함 가상 메모리가 왜 필요한가? * 하나의 프로세스만 실행 가능한 시스템 (배치 처리 시스템 등) 1. 프로그램을 메모리로 로드(load) 2. 프로세스 실행 3. 프로세스 종료 (메모리 해제) * 여러 프로세스 동시 실행 시스템 1. 메모리 용량 부족 이슈 2. 프로세스 메모리 영역간에 침범 이슈 * 가상 메모리 : 메모리가 실제 메모리보다 많아 보이게 하는 기술 - 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술 - 프로세스간 공간 분리로 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메..