오늘은 파일 시스템, 디렉터리 및 자원 보호에 대하여 알아보자
파일시스템 이란?
"파일시스템은 저장장치 내에서 데이터를 읽고 쓰기 위해 미리 정해진 약속이다"
데이터를 효과적으로 관리하기 위해 파일을 체계적으로 기록 및 보관하는 방식을 말하며 파일의 위치,
파일의 이름, 디렉터리 등 계층구조로 데이터가 저장되고 조직화되도록 하는 메커니즘이다. 파일 시스
템이 있어야 원하는 파일을 읽고 쓸수 있으며, 효과적으로 데이터를 검색하고 저장하고 관리할수 있다.
https://blog.naver.com/PostView.nhn?blogId=cbllab&logNo=221283863447&parentCategoryNo=1&categoryNo=6&viewDate=&isShowPopularPosts=false&from=postView
정의
- 저장매체(예: 하드디스크, SSD)에 데이터를 효율적으로 관리하기 위한 용도
- 컴퓨팅을 위한 파일들을 관리하는 운영체제의 한 부분
- • 파일에 데이터를 효율적으로 읽고 쓰기 위해 구현
- • 파일들을 효율적으로 관리하기 위해 구현
- 운영체제의 기능 및 특성에 따라 다양한 파일 시스템이 존재
기능
- 대량의 정보를 파일로 저장
- • 파일의 내용은 사용 중에 파괴되어서는 안됨
- • 백업 및 복구 가능
- 사용자가 파일을 생성, 변경, 제거할 수 있음
- 프로세스간 하나 이상의 파일을 공유할 수 있음
- 다양한 응용 처리
- 여러 종류의 접근 제어 방법을 제공
- 물리적 이름이 아닌 기호형(문자) 이름을 사용하여 참조할 수 있도록 장치의 독립성을 제공
- 정보의 암호화 및 해독 기능 제공
파일의 접근 구조 : 파일을 저장하고 읽는데 있는 구조
파일을 접근 하는 구조를 크게 3가지로 나누어 볼 수 있음
순차 접근 파일(Sequential Access File)
- 입력되는 데이터가 물리적으로 연속적인 위치에 기록되는 방식
- 파일의 내용이 하나의 연속된 줄형태로 기록
- 연속적 데이터 접근을 기반한 매체(자기 테이프)에서 가장 효율적임
- 장점
- • 저장 효율이 높음
- • 낭비되는 저장 공간이 없음
- • 데이터의 빠른 읽기/쓰기가 가능
- 단점
- • 내용 갱신 및 중간 삽입이 비효율적임
- • 위치 이동 시 너무 오래 걸림
직접 접근 파일(Direct Access File)
- 물리적인 저장매체의 주소에 직접 접근하는 방식
- (즉 직접 주소에 기록하고 직접 주소에 접근하여 꺼내온다고 생각하자)
- 전문 지식 필요
- 해시(hash) 기법을 사용
- 사상(mapping) 함수와 표가 필요
- 장점
- • 블록의 개수가 많더라도 빠른 접근이 가능
- • 어떤 레코드라도 평균 접근 시간 내에 접근 가능
- 단점
- • 해시 충돌에 대한 해결방안이 필요
- • 키 변환법에 따라 공간의 낭비를 가져올 수 있음
인덱스 접근 파일(Indexed Sequential Access File)
- 순차 파일 구조에 인덱스를 위한 필드를 추가한 방식
- 주로 디스크 기반의 저장매체에서 사용
- 현대의 기록매체에서 주로 사용하는 방식
- 장점
- • 빠른 접근 및 위치 이동이 가능
- • 중간에 삽입 및 변경이 쉬움
- 단점
- • 내부 단편화가 발생
- • 디스크의 낭비가 발생될 수 있음(=> 가성비 고려 대용량으로 극복)
- • 인덱스를 처리하는 추가적인 시간이 소모
- • 인덱스 저장 공간 및 오버플로 처리를 위한 별도 공간 필요 => 공간 낭비
인덱스 접근 파일을 이용할때 크게 5가지 구역으로 나뉨
3단계 물리적 색인 구역(Index Area)
• Master Index : 인덱스 테이블 저장하고 있음
• Cylinder Index : 여러 하드 원판중 어디에 있는지
• Track Index : 원판 어느 트렉에 저장 되어있는지
기본 데이터 구역(Prime Data Area)
• 실제 데이터가 기록된 구역
오버플로 구역(Overflow Area)
• Cylinder Overflow
• Independent Overflow
파일 제어 블록
정의
- File Control Block
- 파일을 관리하기 위해 운영체제가 필요로 하는 정보
- 파일마다 독립적으로 가짐
- 프로세스가 Open하면 FCB가 운영체제 내에서 생성되어 주기억 장치에서 관리
- 운영체제는 프로세스에게 FCB의 접근을 위해 파일 디스크립터(file descriptor)로 알려줌
주요 항목
- 파일명
- 보조 기억장치의 유형(디스크, 테이프, USB 메모리 등) 및 파일 위치
- 파일의 구조: 순차 파일, 직접 파일, 색인 파일 등
- 파일 소유자 및 접근(Access) 권한
- 파일 유형: 텍스트, 바이너리 등
- 생성 시간, 최종 수정 날자
- 접근 횟수
- 기타
디스크 공간 할당과 회수
윗 글에서 다양한 파일의 접근 구조를 살펴 보았다
이제 실질적으로 운영체제에서 (램 -> 하드) 파일의 데이터를 물리적인 디스크에 저장하고 삭제하는 방법에 대하여 알아보자
디스크 공간 할당과 회수는파일의 데이터를 물리적인 디스크에 저장하고 삭제하는 방법을 의미
데이터의 물리적인 연속성에 따라 두 가지로 구분
이전시간에 이야기 했지만 복습
블록
• 하드디스크와 컴퓨터 사이 데이터 전송을 위한 단위
• 한 블록은 하드디스크내 여러 개의 섹터로 구성됨
• 연속 블록 할당(Contiguous Block Allocation)
• 불연속 블록 할당(링크 블록 할당)
- – 섹터 단위형
- – 블록 단위형
연속 블록 할당(Contiguous Block Allocation)
- 물리적으로 연속적인 공간에 저장
- 저장할 크기(공간)을 미리 지정
- 파일마다 크기가 다르기 때문에, 잦은 추가/삭제 발생시 단편화 발생
- 주기적인 통합(Coalescing), 집약(Compaction, Garbage Collection) 작업 필요
불연속 블록 할당(링크 블록 할당)
- 디스크 공간을 일정한 길이를 갖는 단위(섹터, 블록)으로 나누어 할당
- 분할된 영역은 독립적으로 취급
- 파일의 데이터들은 분할된 영역에 저장
- 저장하는 공간 외에 분할된 정보와 파일의 연결된 데이터 정보를 저장해야 하는 영역이 부가적으로 필요
섹터 단위형
• 파일의 데이터가 섹터 단위로 분산되어 저장
• 섹터는 연결 리스트(Linked-List) 구조 형태로 연결
• 파일의 크기가 작아지면 사용하지 않는 섹터는 반환됨
블록 단위형
- • 블록 체인 기법 – 여러 개의 섹터를 묶은 블록을 체인처럼 연결
- • 인덱스 블록 체인 기법(index block chaining)
- – 인덱스에 블록의 주소를 링크
- – 예: UNIX 파일 시스템
- • 블록 단위 파일 사상 기법
- – 파일 정보의 해당 블록을 사상시켜 연결
- – 예: MS-DOS, MS-Windows
블록 단위형의 기법들에 대한 구체적인 내용이 더 궁금하다면 참고
http://itnovice1.blogspot.com/2019/09/blog-post_6.html
디렉터리
디렉터리는 우리가 흔히 알고있는 폴더이다.
+ : 운영체제 입장에서는 파일과 디렉터리를 동일하게 본다. 파일 속성중에 디렉터리가 있는 것이다.
이해하는데 있어 혼란이 있을 수 있으니 일단 우리가 아는 폴더라고 생각하고 넘어가자
기법 종류
- 1(일, 단)단계 디렉터리
- 2단계 디렉터리
- 트리 구조 디렉터리
- 비순환(주기) 그래프 디렉터리
- 일반 그래프 디렉터리
좀더 자세히 알아보자
1(일, 단)단계 디렉터리(Single Level Directory)
- 가장 간단한 구조
- 모든 파일들이 다 같이 한 개의 디렉터리 밑에 있는 구조
- 모든 파일명은 유일 해야함
장점
- 구현이 쉬움
- 파일들의 크기가 작으면, 검색이 더 빠름
- 파일 생성, 탐색, 삭제가 쉬움
단점
- 동일 이름의 파일을 만들 수 없음
- 디렉터리의 크기가 클 수록 탐색이 더 오래 걸림
- 다중 사용자를 위한 보호부분의 구현에 어려움이 존재
- 파일들에 대한 그룹화 관련 방법이 없음
- 운영체제는 파일명 길의 제한이 있기 때문에, 독립적 이름에 대한 한계가 있음
2단계 디렉터리(Two Level Directory)
- 중앙에 마스터 디렉터리(master directory)가 존재하고 그 아래 사용자 디렉터리가 있는 구조
- 다른 사용자와의 파일 공유 불가
- 파일명 표현 방식
- • 예: <사용자1>\Game\A.TXT
- 단점, 파일명이 길어 짐
+ 마스터 : 각 사용자의 이름이나 계정 번호를 가리키는 포인터정보를 갖는 곳
빨간색으로 선을 그은 부분만 보면 싱글 즉 1단계 디렉터리다.
트리 구조 디렉터리
- 하나의 루트 디렉터리와 여러 개의 부(종속, 서브) 디렉터리로 구성
- • 부 디렉터리는 그 하위로 또 다른 디렉터리를 구성할 수 있음
- 각 디렉터리의 생성과 삭제가 용이
- 동일한 이름의 여러 디렉터리 생성이 가능
- 다양한 운영체제에서 사용됨 • 예: UNIX, MS-DOS, Windows 등
Root Directory : 트리나 그래프구조의 디렉터리구조에서 최상위 디렉터리를 의미함
비순환 그래프 디렉터리
- Acyclic Graph Directory
- 트리 구조와 유사
- 사이클을 허용하지 않음 (참고로 사이클은 바로가기 버튼을 통해 두 파일이 서로를 참조하는 느낌으로 이해하면 됨)
- 하나의 파일이나 디렉터리를 상위 디렉터리에서 공유 가능
- 링크의 개념이 존재
- • 링크의 수가 0이면 삭제된 것임
- • 하나의 파일이 다수의 이름으로 존재할 수 있음
- UNIX에서 지원
일반 그래프 디렉터리
- 사이클을 허용
- 사이클로 인해 하나의 파일이나 디렉터리를 상위 디렉터리와 공용할 수 있음
- 파일을 제거하기 위한 자투리 모음(Garbage-Collection)용 계수기가 별도로 필요
- 단, 디렉터리 크기 및 측정 파일의 총 개수 등의 분석이 사이클로 인해 어려움
- UNIX에서 지원
자원 보호
운영체제에서 자원을 보호하는 기법에 대하여 알아보자
자원 보호 기법(접근 제어 기법)
- 접근 제어 행렬 : ACM
- 접근 제어 리스트 : ACL
- 자격 리스트 : CL
접근 제어 행렬(Access Control Matrix)
• 객체의 사용 권한을 모든 사용자 리스트와 함께 표로 관리
• 사용자가 많아지면 공간 낭비가 발생 => 효율성 하락
접근 제어 리스트(Access Control List)
• 자원(보호할 대상) 영역별로 권한을 구성
• 리스트내 권한이 있는 사용자만 나열 => 공간 절약
자격 리스트(Capacity List)
• 사용자별 접근 가능한 자원항목들을 정의
• 접근 제어 행렬(Access Control Matrix)에서 각 행만 따온 것
• 각 권한은 객체와 그 객체에 허용된 연산자로 구성
보안
보안 유지 방식
외부(External) 보안
• 침입자(도둑 등) 또는 화재나 홍수 등과 같은 천재지변으로 부터 컴퓨터 자원을 보호
• 방법: 잦은 백업 및 백업 자료 보관
• 종류: 시설문 보안, 운용보안 => 관리자, 경영자들의 정책을 통한 통제
내부(Internal) 보안
• 하드웨어나 운영체제에 내장된 기능
• 프로그램 및 데이터의 신뢰성과 무결성을 보장
• 관련 기술적용 예: 버전관리, 해쉬(hash), 정품S/W 확인 등
사용자 인터페이스 보안(User Interface Security)
• 사용자 접근을 위한 신원을 확인하는 절차 등의 행위 • 종류: 패스워드 보호, 인증 등
'자료구조, 운영체제, 네트워크, 시스템설계 > NCS' 카테고리의 다른 글
운영체제 기술면접 준비10: 분산 운영체제 시스템 (현대의 운영체제 시스템) (1) | 2022.10.11 |
---|---|
운영체제 기술면접 준비9: 플린 분류법에 따른 컴퓨터 시스템 구조, 다중 처리를 위한 운영체제 (0) | 2022.10.11 |
운영체제 기술면접 준비6: 가상 기억장치 구역성, 관리 전략, 교체 알고리즘 (0) | 2022.10.10 |
운영체제 기술면접 준비5: 메모리(RAM) 관리, 가상 기억장치, 실 기억장치, 단편화, 페이징, 세그멘테이션 (0) | 2022.10.10 |
운영체제 기술면접 준비4: 임계구역, 교착상태 (0) | 2022.10.10 |