20
소프트웨어학과 원성현 교수 1 운영체제 강의노트 교재 : 운영체제(개정판) 출판사 : 한빛미디어(201011발행) 저자 : 구현회

운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 1

운영체제 강의노트

교재 : 운영체제(개정판) 출판사 : 한빛미디어(2010년 11월 발행) 저자 : 구현회

Page 2: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 2

10장 파일 관리

Page 3: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 3

1. 파일 시스템

파일 시스템 개요

• 파일 시스템이란? • 파일 자원을 관리하고 파일의 생성, 삭제 등 파일 접근 및 제어에 대한 책임을 갖는 운영체제의 일부 • 파일의 저장 위치, 저장 방법, 저장공간 활용, 파일 사용 할당, 파일 접근 횟수 등과 관련된 복잡한 작업을 수행

• 파일 시스템을 설계하려면? • 사용자 수, 사용자 당 평균 파일 수와 크기 등 사용자에 대한 지식이 필요

• 파일 시스템 기능 • 파일 관리 • 보조기억장치 관리 • 파일 무결성 보장 : 파일에 저장된 정보가 손상되지 않도록 보장 • 파일 접근 방법 : 판독, 기록, 실행 등에 대한 권한 부여 • 파일 백업과 복구 : 사고로 정보를 손실하거나 고의로 손상시키는 일을 방지하기 위한 복사본 생성 및 손상된 데이터 복구

Page 4: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 4

1. 파일 시스템

• 파일 관리 요소 • 파일 시스템의 목적은 다양한 형태의 저장 장치를 위한 입출력 자원과 더불어 데이터의 보호와 처리율 향상을 위한 성능의 최적화

사용자

디렉토리 관리

엑세스 제어

파일 조작

엑세스 방법 버퍼링(블로킹)

파일구조

레코드

블록 캐시

제어기 캐시

파일 할당 빈 공간 관리

디스크 스케줄링

논리적 관점

Page 5: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 5

1. 파일 시스템

• 파일 시스템 구조 • 장치 드라이버

• 주변장치, 장치제어기, 채널들과 직접적으로 통신하며 장치에 대한 입출력 연산의 시작과 입출력 요구의 완료 등 입출력 수행하는데 통상 운영체제의 일부

• 입출력 제어 • 장치 드라이버 루틴과 인터럽트 처리기로 이루어졌으며, 명령어를 해석하여 메모리와 디스크 시스템 간의 정보 전송을 담당

• 기본 파일 시스템 • 컴퓨터 시스템의 외부 환경과의 주요한 인터페이스 • 물리적 블록을 읽거나 쓰기 위해 적절한 장치 드라이버를 호출하는 계층

• 파일, 구성 모듈 • 논리 블록 주소를 물리 블록 주소로 변환

• 논리 파일 시스템 • 레코드 입출력 기능 제공, 파일에 대한 기초 데이터 유지

Page 6: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 6

1. 파일 시스템

• 블록 • 메모리와 디스크 간의 전송 단위 • 파일은 디스크의 하나 이상의 블록에 저장되고, 블록은 디스크에 하나 이상의 섹터들로 구성되는데 할당 방법은 운영체제에 따라 다름

jki

def

ghi

abc

mno

pqr

0

1

2

3

4

5

운영체제

논리적파일

VBN(Virtual Block Number)

def pqr

mno abc

jki ghi

블록 4 블록 24

블록 33 블록 120

블록 558 블록 26433

558

파일주소

LBN(Logical Block Number)

물리적파일

Page 7: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 7

1. 파일 시스템

• 메타 데이터(Meta Data) • 파일 시스템에 대한 크기, 가용 공간, 루트 데이터의 위치, 가용 리스트 등의 정보와 파일에 대한 소유자, 크기, 블록 위치, 엑세스 시간 등의 정보를 가지고 있음 • 사용자가 수정할 수 없음

• 마운팅(Mounting) • 새로운 파일을 개방하려고 할 때 새로운 파일 시스템을 기존의 파일 시스템의 디렉터리에 설치하는 일련의 과정

• 예를 들어, USB나 DVD에 파일을 저장 • 운영체제는 여러 파일 시스템을 마운트할 수 있는 기능을 제공 • 마운팅 절차

• 여러 파일 시스템을 단일 파일 시스템에서 식별할 수 있는 파일 집합으로 결합 • 운영체제에 마운트하려는 파일 시스템의 저장 위치와 새로운 파일 시스템의 설치 지점, 즉 마운트 포인터를 제공함으로써 이루어짐

Page 8: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 8

1. 파일 시스템

파일 개념

• 파일이란? • 서로 관계 있는 정보의 집합체 또는 레코드들의 집합체 • 작성자에 의해 정의된 많은 종류의 서로 다른 형태의 정보

• 원시 프로그램, 목적 프로그램, 숫자, 데이터, 텍스트, 이미지, 사운드 등

• 파일 구성 • 항목(필드) : 의미있는 데이터의 가장 기본적인 단위 • 레코드 : 2개 이상의 항목으로 구성

서브항목 1 서브항목 2 서브항목 3

항목 1 항목 2 항목 3 … 항목 N

레코드 1 레코드 2 레코드 3 … 레코드 N

블록 1 블록 2 블록 3 … 블록 N

레코드

블록

파일

Page 9: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 9

1. 파일 시스템

• 파일 이름 명명 • 동일한 디렉터리 내에서는 유일한 식별자 • 디렉터리와 파일명으로 구성된 경로명 설정

• 파일명 제약 • MS-DOS가 이름 8자 + 확장자 3자로 파일명에 큰 제약을 두었으나 그 이후 거의 제약이 없을 정도로 긴 길이까지 허용

• 파일 속성 • 운영체제가 파일을 관리하는데 필요로 하는 정보를 말함 • 파일 속성을 포함하는 파일 제어 블록은 디스크에 저장하고, 파일을 열 때 탐색시간을 단축하기 위해 열린 파일 정보를 메모리에 유지 • 파일 이름, 파일, 타입, 저장 위치, 파일 크기, 파일 접근 권한, 소유자, 생성시간, 수정시간 등

• 파일 유형 • 파일을 다루는 프로그램에 의해 인식 가능한 내부 구조로 생성

• 실행 파일, 소소 코드, 문서, 워드프로세서, 라이브러리(lib, DLL 등), 압축 등

Page 10: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 10

1. 파일 시스템

• 파일 구조 • 순차 파일

• 일정한 크기로 같은 수의 필드로 구성된 레코드를 물리적인 순서에 따라 저장하는 방식 • 과거, 자기테이프를 주된 보조기억장치로 사용할 당시에 각광을 받던 파일 구조

• 인덱스 파일 • 디스크가 주된 보조기억장치로 등장하면서 파일의 주된 내용을 저장하되, 인덱스만 가지고 있는 테이블을 별도로 저장하여 파일의 주된 내용을 검색할 때 인덱스를 먼저 검색하는 구조

• 직접(해시) 파일 • 해싱 함수에 의해 산출된 주소 값으로 바로 저장 또는 바로 검색할 수 있는 구조

• 분할된 파일 • 프로그램 라이브러리나 매크로 라이브러리를 저장하기 위해 하나의 파일을 여러 개의 분할된 서브 파일로 저장하는 구조

Page 11: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 11

1. 파일 시스템

• 파일에 대한 연산 • 파일 생성

• 파일 시스템에서 공간을 발견하고, 새로 생성한 파일 이름과 위치를 등록

• 파일 기록 • 파일명과 파일에 기록할 정보를 표시하는 시스템 호출을 수행 • 파일명이 주어지면 시스템은 파일의 위치를 알기 위해서 디렉터리를 탐색

• 파일 판독 • 파일에는 판독 포인터와 기록 포인터가 각각 있음

• 파일 삭제 • 디렉터리에서 삭제하고자 하는 파일 항목을 찾고, 해당 파일이 사용하던 공간을 해제 • 다른 내용이 그 공간을 사용하기 전에는 이전의 내용은 남아 있고, 새로운 내용이 공간을 사용하게 될 때 비로서 내용이 제거

Page 12: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 12

1. 파일 시스템

레코드 블로킹

• 모든 디스크 입출력은 블록 단위로 이루어짐 • 모든 블록의 크기는 동일함 • 일반적으로 물리적 레코드와 논리적 레코드를 가지고 있음

• 물리적 레코드는 주로 섹터 단위이고, 논리적 레코드 몇 개가 합해져서 물리적 레코드를 구성함 • 물리적 레코드와 논리적 레코드가 일치하는 경우는 비블로킹이라고 함 • 여러 개의 논리적 레코드가 하나의 물리적 레코드를 형성하는 경우는 블로킹이라고 함

• 고정길이 레코드와 가변길이 레코드 • 고정길이 레코드는 모든 레코드의 길이가 동일 • 가변길이 레코드는 레코드의 길이가 모두 동일하지는 않음

• 고정 블로킹과 가변 블로킹 • 고정 블로킹은 고정된 길이를 사용하여 한 블록에 필요한 레코드를 저장하고, 가변 블로킹은 가변적인 길이의 블록에 레코드 저장

Page 13: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 13

2. 디렉터리 시스템

디렉터리 개요

• 장치 디렉터리 • 각 실제 장치에 저장되어 있으며 장치에 있는 파일의 물리적 속성(예를 들어, 파일의 위치, 파일의 크기 등)을 나타냄

• 파일 디렉터리 • 모든 파일의 논리적 구성으로 파일명, 파일 유형, 파일 소유자, 계정 정보, 보호 액세스 코드 등을 기술

• 디렉터리 내 정보 • 파일명 • 파일 형태 • 위치 • 크기 • 현재 위치 • 보호 : 판독, 기록, 실행 등을 할 수 있는지 여부 • 사용 수 : 현재 개방된 파일을 사용하는 프로세스의 수 • 시간, 날짜, 처리 식별

Page 14: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 14

2. 디렉터리 시스템

디렉터리 구조

• 1단계 디렉터리 • 루트 밑에 디렉터리 한 개를 두고, 모든 파일은 그 안에 분류

• 2단계 디렉터리 • 루트 밑에 디렉터리 한 개를 두고, 다시 그 디렉터리는 또 다른 한 개의 디렉터리를 두고 모든 파일은 그 안에 분류

• 트리 구조 디렉터리 • 2단계 디렉터리는 높이가 2인 트리 구조 • 트리 구조는 2단계 디렉터리 구조를 임의의 단계까지 확장한 구조

Page 15: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 15

3. 디스크 할당 방법

연속 할당

• 연속 할당 • 파일들을 디스크의 연속적인 주소들의 집합에 할당하는 방식

0

4

8

12

16

20

24

28

1

5

9

13

17

21

25

29

2

6

10

14

18

22

26

30

3

7

11

15

19

23

27

31

count

f

tr

mail

list

count 0 2 tr 14 3 mail 19 6 list 28 4 f 6 2

파일명 시작블록 길이

Page 16: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 16

3. 디스크 할당 방법

연결 할당

• 연결 할당 • 파일들을 디스크의 연속적인 주소들의 집합에 할당하는 방식

10

16 25

1

-1

0

4

8

12

16

20

24

28

1

5

9

13

17

21

25

29

2

6

10

14

18

22

26

30

3

7

11

15

19

23

27

31

jeep 9 25

파일명 시작블록 끝블록

Page 17: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 17

3. 디스크 할당 방법

인덱스 할당

• 인덱스 할당 • 인덱스 블록에서 모든 포인터를 관리하는 방식

0

4

8

12

16

20

24

28

1

5

9

13

17

21

25

29

2

6

10

14

18

22

26

30

3

7

11

15

19

23

27

31

9 16 1 10 25 -1

jeep 19

파일명 인덱스 블록

Page 18: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 18

3. 디스크 할당 방법

성능

• 연속 할당 • 파일은 반드시 연속적인 공간으로 할당되어야 하기 때문에 파일의 크기보다 작은 공간은 파일을 할당하지 못하고 빈 공간으로 남아 있기 때문에 공간 낭비 초래 • 파일 접근 속도는 빠름

• 연결 할당 • 디스크 내에 산재한 빈 공간을 충분히 활용할 수 있음 • 파일 전체에 접근하기 위해 여러 블록을 경유해야 하기 때문에 파일 접근 속도가 느림 • 블록 포인터가 손상되면 신뢰성 하락

• 인덱스 할당 • 파일이 분산 저장된 각 블록에 대한 직접 접근이 가능 • 인덱스를 위한 블록이 필요함 • 파일이 작은 경우에는 이 방식이 적절하지 않고 파일이 커지면 효율적일 수 있음

Page 19: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 19

4. 디스크의 빈 공간 관리

비트 벡터

• 비트 벡터 방식 • 각 블록에 1비트씩 할당하고 사용 여부를 0또는 1로 표기

0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1

0

5

10

15

20

25

30

1

6

11

16

21

26

31

2

7

12

17

22

27

32

3

8

13

18

23

28

33

4

9

14

19

24

29

34

비트 벡터

0 : 빈 블록 1 : 사용 중인 블록

Page 20: 운영체제 강의노트contents.kocw.net/KOCW/document/2015/cup/weonsunghyun/10.pdf · 2016-09-09 · 소프트웨어학과 원성현 교수 7 1. 파일 시스템 • 메타 데이터(Meta

소프트웨어학과 원성현 교수 20

4. 디스크의 빈 공간 관리

연결 리스트

• 연결 리스트 방식 • 빈 블록만 연결 리스트로 연결하고 새로운 파일에게 할당할 경우, 주소가 가장 낮은 빈 블록부터 할당

0

5

10

15

20

25

30

1

6

11

16

21

26

31

2

7

12

17

22

27

32

3

8

13

18

23

28

33

4

9

14

19

24

29

34

0