묻공러
'CS/[혼자 공부하는] 운영체제' 카테고리의 글 목록

CS/[혼자 공부하는] 운영체제

CS/[혼자 공부하는] 운영체제

7-3] 파일 시스템: 파일 시스템의 종류

1] FAT 파일 시스템연결 할당 기반 파일 시스템연결 할당의 단점을 보완각 블록에 포함된 다음 블록 주소를 한데 모아 테이블(FAT, File Allocation Table)로 관리FAT 12, 16, 32는 블록을 표현하는 비트 수를 의미한다FAT 데이터 자체가 메모리에 캐시 될 경우에는 느린 임의 접근 속도 개선 가능- FAT 파일 시스템의 파티션 모습파일의 속성 또한 명시가 된다- FAT 파일 시스템 예시루트 디렉터리 > home 디렉터리 > minchil 디렉터리 > a.sh 시작 주소 > FAT 참고해서 계속 읽어 나가기 2] 유닉스 파일 시스템색인 할당 기반 파일 시스템색인 블록 (i-node)은 파일의 속성 정보와 15개의 블록 주소 저장 가능- 15개 블록 이상을 차지하는 파일은 어떻게 ..

CS/[혼자 공부하는] 운영체제

7-2] 파일 시스템: 파티셔닝과 포매팅, 파일 할당 방법

파티셔닝과 포매팅 파티셔닝 저장 장치의 논리적인 영역을 구획하는 작업 포매팅 파일 시스템을 설정해서 어떤 방식으로 파일을 관리하지 결정, 새로운 데이터를 쓸 준비하는 작업으로 포매팅을 통해 파일 시스템이 결정된다 파일 시스템에는 다양한 종류가 있고 파티션마다 다른 파일 시스템을 설정할 수도 있다 포매팅까지 완료하면 파일 시스템을 설정했다면 이제 파일과 디렉터리 생성이 가능해진다 파일 할당 방법 포매팅까지 끝난 하드 디스크에 파일을 저장하는 방법은 운영체제는 파일/디렉터리를 블록 단위로 읽고 쓴다 즉, 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장된다 사실 하드 디스크의 가장 작은 저장 단위는 섹터이지만 섹터는 크기가 작고 너무 많기 때문에 이를 관리하기 위해 섹터를 묶어 블록 단위를 ..

CS/[혼자 공부하는] 운영체제

7-1] 파일 시스템: 파일과 디렉토리

파일 시스템(file system) 파일과 디렉터리를 관리하는 운영체제 내의 프로그램 파일과 디렉터리를 다루어 주는 프로그램 파일 보조기억장치에 저장된 관련 정보의 집합 의미 있고 관련 있는 정보를 모은 논리적 단위 파일을 이루는 정보: 파일을 실행하기 위한 정보 + 부가 정보(= 속성, 메타 데이터) 파일의 속성파일 연산을 위한 OS에서 지원하는 시스템 호출 파일 생성, 삭제, 열기, 닫기, 읽기, 쓰기 등 디렉터리 윈도우에서는 폴더(folder)라고 부른다OS는 계층적으로 디렉터리를 관리한다-1단계 디렉터리-트리 구조 디렉터리 최상위 디렉터리(루트 디렉터리, /)와 서브 디렉터리의 형태 + 디렉터리의 경로 디렉터리를 이용해 파일/디렉터리의 위치, 나아가 이름까지 특정 지을 수 있는 정보 같은 디렉터리..

CS/[혼자 공부하는] 운영체제

6-4] 가상메모리: 페이지 교체와 프레임 할당

요구 페이징 처음부터 모든 페이지를 적재하지 않고 필요한 페이지만을 메모리에 적재하는 기법 요구되는 페이지만 적재하는 기법 이러한 요구 페이징 시스템이 안정적으로 작동하기 위해서는 - 페이지 교체 - 프레임 할당 페이지 교체 알고리즘 요구 페이징 기법으로 페이지들을 적대하다보면 메모리는 가득 차게 되고 당장 실행에 필요한 페이지를 적재하려면 적재된 페이지를 보조기억장치로 내보내야 하는데 이때, 어떤 페이지를 내보낼 지 결정하는 방법(알고리즘)이 페이지 교체 알고리즘 좋은 페이지 교체 알고리즘의 기준은 페이지 폴트가 적은 알고리즘 왜냐하면 페이지 폴트가 발생하면 보조기억장치에 접근해야 해서 성능이 저하되기 때문 페이지 참조열(page reference string) 페이지 폴트 횟수를 알기 위한 참조열이며..

CS/[혼자 공부하는] 운영체제

6-3] 가상 메모리: 쓰기 시 복사와 계층적 페이징

쓰기 시 복사 프로세스는 기본적으로 자원을 공유하진 않는다fork()를 하게 되면 부모 프로세스가 적재된 별도의 공간에 자식 프로세스가 통째로 복제되어 적재되니 프로세스 생성 시간 지연과 메모리 낭비가 일어난다 하지만 쓰기 시 복사를 통해 이를 해결할 수 있다 쓰기 시 복사는 부모 프로세스와 동일한 자식 프로세스가 복제되어 생성되면 자식 프로세스는 부모 프로세스와 동일한 프레임을 가리킨다 쓰기 작업이 없다면 이 상태를 유지한다부모 프로세스, 자식 프로세스 둘 중 하나라도 페이지에 쓰기 작업 수행 시 해당 페이지만 별도의 공간으로 복제되며 프로세스 생성 시간 절약과 메모리 절약이 가능하다계층적 페이징 프로세스 테이블의 크기는 생각보다 작지 않다 프로세스를 이루는 모든 페이지 테이블 엔트리를 메모리에 두는 ..

CS/[혼자 공부하는] 운영체제

6-2] 가상 메모리: 페이징을 통한 가상 메모리 관리

연속 메모리 할당의 문제점1. 외부 단편화2. 물리 메모리보다 큰 프로세스 실행 불 페이징 (paging) 프로세스를 일정 크기로 자르고, 이를 메모리에 불연속적으로 할당하는 방식 프로세스의 논리 주소 공간을 페이지(page)라는 일정 단위로 자르고 메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자른 뒤 페이지를 프레임에 할당하는 가상 메모리 관리 기법 이를 통해, 외부 단편화를 해결페이징에서의 스와핑 프로세스 단위의 스왑 인, 스왑 아웃이 아닌 페이지 단위의 스왑 인(페이지 인), 스왑 아웃(페이지 아웃) 메모리에 적재될 필요가 없는 페이지들은 보조기억장치로 스왑 아웃 실행에 필요한 페이지들은 메모리로 스왑 인 하나의 프로세스를 실행하기 위해 해당 프로세스의 모든 페..

CS/[혼자 공부하는] 운영체제

6-1] 가상 메모리: 연속 메모리 할당

연속 메모리 할당 프로세스에 연속적인 메모리 공간을 할당 스와핑 현재 사용되지 않는 프로세스들을 보조기억장치의 일부 영역으로 쫓아내고 그렇게 생긴 빈 공간에 새 프로세스 적재 실제 메모리 크기 보다 프로세스들이 요구하는 메모리 공간 크기 크더라도 가능메모리 할당 방식프로세스는 메모리의 빈 공간에 할당되어야 한다 빈 공간이 여러 개라면 세가지 방식을 통해 할당한다 - 최초 적합 (first-fit) 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식 장점) 검색 최소화, 빠른 할당 - 최적 적합 (best-fit) 운영체제가 빈 공간을 모두 검색해본 뒤, 적재 가능한 가장 작은 공간에 할당 - 최악 적합 (worst-fit) 운영체제가 빈..

CS/[혼자 공부하는] 운영체제

5-2] 교착상태: 교착 상태 해결 방법

교착 상태 해결: 예방, 회피, 검출 후 회복 교착 상태 예방 애초에 교착 상태가 발생하지 않도록 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원형 대기)중 하나를 없애버리기 - 상호 배제를 없애면? 모든 자원을 공유 가능하게 하면서 현실적으로 불가능 - 점유와 대기를 없애면? 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분 자원의 활용률을 낮출 수 있기에 좋지 않은 방식 - 비선점 조건을 없애면? 선점이 가능한 자원(e.g. CPU)에 한해 효과적 하지만 모든 자원이 선점 가능한 것은 아니다 ex. 프린트 도중에 멈춰버린다면... - 원형 대기 조건을 없애면? 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않음하지만 모든 자원에 번호 붙이는 것은..

CS/[혼자 공부하는] 운영체제

5-1] 교착상태: 교착 상태란

교착상태의 의미 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상 교착상태를 해결하기 위해서 1. 교착 상태가 발생했을 때의 상황을 정확히 표현 2. 교착 상태가 일어나는 근본적인 이유  자원 할당 그래프 교착 상태가 발생했을 때의 상황을 정확히 표현하기 위한 그래프 교착 상태 발생 조건 파악 가능 어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인 가능 어떤 프로세스가 어떤 자원을 기다리고 있는지 확인 가능 프로세스는 원으로, 자원의 종류는 사각형으로 표현 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현 프로세스가 어떤 자원을 할당 받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시 교착 상태가 발..

CS/[혼자 공부하는] 운영체제

4-2] 프로세스 동기화: 동기화 기법

뮤텍스 락 상호 배제를 위한 동기화 도구 (자물쇠 역할) 뮤텍스 락의 단순한 형태: 전역 변수 하나, 함수 두 개 자물쇠 역할: 프로세스들이 공유하는 전역 변수 lock 임계 구역을 잠그는 역할: acquire 함수 임계 구역을 잠금 해제하는 역할: release 함수- 바쁜 대기 (busy waiting) 발생 세마포 좀더 일반화된 방식의 동기화 도구 뮤텍스 락은 공유 자원이 하나인 경우만 가능하지만 세마포는 공유 자원이 여러 개 있는 경우에도 적용 가능 세마포의 종류는 이진 세마포, 카운팅 세마포가 있는데 여기서는 카운팅 세마포를 지칭 세마포의 상호 배제를 위한 동기화  세마포의 단순한 형태: 전역 변수 하나, 함수 두 개 임계 구역에 진입할 수 있는 프로세스의 개수(사용 가능한 공유 자원의 개수)를..