운영체제(OS)/공룡책

    [운영체제] 파일 접근 방법

    [운영체제] 파일 접근 방법

    [파일접근방법] 1 ) 순차 접근 read write reset 2 ) 직접 접근 -> 파일 위치 맘대로 정할 수 있음 read write position 3 ) 인덱스 접근 방법 -> 인덱스를 넣으면 last_name이 나오게 만듬. [Directory Structure] 디렉토리의 구조는 다음과 같다. -> 디렉토리 안에 파일컨트롤블록이 들어가 있다. 디스크는 파티션으로 나눠질 수 있다. 1 ) Formatted (Volume) : 파티션에 파일 시스템이 들어가 있음 2 ) Raw : 블록들의 연속으로만 존재 [디렉토리에서의 수행 연산] 1 ) 파일을 찾고 만들고 지우기 2 ) 폴더를 리스트하기 3 ) 파일의 이름을 변경하기 4 ) 파일 시스템을 순회 --> 폴더 구조는 어떻게 해야 할까? 1 ) 파..

    [운영체제] 파일

    [운영체제] 파일

    파일이란 ? -> 영구적으로 보관되어야 할 정보 파일은 많은 타입을 가진다 : text | source | executable Name Identifier : 번호를 붙여서 파일 식별 Type : 서로 다른 타입을 가진 시스템을 지원하기 위해 필요 Location : 기기에서 파일의 위치를 가리키는 포인터 Size Protection : 누가 읽고 쓸 수 있는지에 대한 정보 Time, date, and user identification 파일 스크립터 | 파일컨트롤블록 : 파일에 대한 정보가 들어가 있음. [파일 연산] 파일을 만들고 지우고 읽고 쓰기. Seek : Current pointer를 움직이는 것. Truncate : 파일 내용 지우고 빈 파일을 만든다. Open | Close : 파일컨트롤블..

    [운영체제] 디스크 관리

    [운영체제] 디스크 관리

    Low-level formatting : 자료를 저장하기 전에 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 것 Partition : 장치를 하나 이상의 블록 또는 페이지 그룹으로 나누어 운영체제가 각 파티션을 별도의 장치인 것처럼 취급하게 함. 컴퓨터를 키면 Rom에 있는 bootstrap이 실행됨. cf ) partition table : 어떤 partition 로딩할 수 있는지에 대한 정보를 가짐. [Swap-Space Management] 디스크는 Swap하는 공간으로도 사용이 가능함. 1 ) 파일 시스템 안에 큰 파일을 만들어서 사용 2 ) 디스크의 연속적인 공간 잡아서 사용.

    [운영체제] 디스크와 디스크 스케쥴링

    [운영체제] 디스크와 디스크 스케쥴링

    디스크는 트랙으로 구성이 되어 있고 트랙은 다시 섹터로 나누어진다. 동일한 암 위치에 있는 트랙의 집한은 하나의 실린더를 형성한다. 여기서 디스크 암이 원하는 실린더로 움직이는 데 걸리는 시간을 탐색 시간(Seek Time)이라고 하며, 원하는 섹터가 디스크 헤드 위치까지 회전하는데 걸리는 시간을 회전지연시간이라고 한다. [Hard Disk] 접근 지연 시간 = 평균 접근 시간 = Seek time + rotational latency 평균 I/O시간 = 평균 접근 시간 + 전송 시간 + 컨트롤로 오버헤드 [Disk structure] 디스크는 섹터 들의 연속이며, Sector 0은 첫 번째 트랙의 첫 번째 섹터를 가리킴. 운영체제는 디스크마다 큐를 가지고 디스크를 관리한다. 이 때 운영체제가 디스크에 ..

    [운영체제] 커널 메모리

    [운영체제] 커널 메모리

    커널 메모리를 관리할 때 사용자 공간과 분리하는게 일반적이다. 그 이유는 다음과 같다. 1 ) 커널은 크기가 서로 다른 다양한 자료 구조를 사용 -> 단편화 문제가 발생함. 2 ) 사용자 모드 프로세스는 연속적인 메모리가 필요 없는데 특정 하드웨어 장치는 물리적으로 연속적인 메모리가 있어야 한다. [커널 메모리 할당 방법] 1 ) 버디 시스템 -> 2의 지수승 크기로 할당한다. 256KB의 메모리 사용이 가능하다고 할 때, 21K의 메모리를 할당하는 방법에 대해 확인해보자 21보다 크지만 내부 단편화가 가장 적어질 때 까지 2로 나누는 과정을 반복한다. (32KB에 할당됨.) 만약 할당된 프로세스( 21KB )가 종료되었다면 32KB 두개를 합칠 수 있다. 이것을 합병(coalesce)라고 한다. 2 )..