운영체제 (Operating Systems)

Slides:



Advertisements
Similar presentations
IBM WAVE for z/VM. PC requirements - jdk V1.7 이상 설치 웹서버 접속 – 로 접속 “Launch IBM Wave v1.2.0” 클릭.
Advertisements

Lee Hoon Copyright(c) 2008 LeeHoon All rights reserved. 제7강제7강.
Oracle DB 구조 및 트랜잭션 관리 이경화 Database 의 구조 Program Global Area (PGA) Instance Database Buffer Cache Redo Log Buffer Library Cache Shared.
© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
Managing Filesystems, Swap Space, and Devices
화일구조.
Project #2-2. Pintos User Program
1파일열기와 저장하기 폴더 지정방법 2 처음 파일을 만들려면 3 음자리표 입력하기 4 조표 입력 5 박자 입력 방법
4. 데이터 기능 유형.
Understanding of Socket and File I/O
SAP QUERY SAP R/3 4.6C.
Internet Computing KUT Youn-Hee Han
Operating Systems Overview
SAP FI – Financial Accounting.
Toad for Oracle 설치 방법.
운 영 체 제 실 습 (리눅스 서버관리입문) 02. 리눅스 설치.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
Web Servers (IIS & Apache)
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
12. 데이터베이스 설계.
연결리스트 (Linked List) 충북대학교 컴퓨터공학과 서 영 훈.
FTP 중앙대학교 안 봉 현
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Unix Project-Final <test character device 생성>
Linux/UNIX Programming
UNIX Unbounded A Beginning Approach
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
Web상에서의 Network Management
5. 네트워킹 사용자 표시 : users/ rusers/who/w users 지역 호스트 상에 있는 사용자의 간단한 목록 표시
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
Linux/UNIX Programming APUE (Files & Directories)
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
DataStage 운영자 지침서 Operator’s Guide
제9장 네트워킹 숙명여대 창병모 2011 가을.
File Management.
제3,4,5장 프로세스, 스레드 관리 CPU 스케줄링.
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
Computer System Architecture
UNIX Internet Server의 대부분을 차지 대표적인 공급업체
제10,11,12장 파일시스템 디스크 스케줄링.
6. 파일 관리. pwd(print working directory)와 cd(change directory) ls(list)
Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft
제10장 파일 시스템 인터페이스(File System Interface)
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
2018 봄학기 Pusan National University School of CSE
「 LINUX IBM SpectrumScale 설치 가이드」
운영체제(Operating System)
기억장치 관리(Memory Management)
운영체제 (Operating Systems) (Memory Management Strategies)
제15강 기억장치 3.
JFS operation HP Korea / Operations JFS operation.
12장. 파일 시스템 구현.
McGraw-Hill Technology Education
Chapter 12 Memory Organization
화일구조.
CHAPTER 04 파일 설계(FiLE Design).
Command line tools 한국어 정보의 전산 처리
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
시스템 인터페이스 Lab#6 C 쉘 프로그래밍 실습.
화 일 구 조 Chapter 3 화일의 입출력 제어.
제4장 유닉스 쉘 숙명여대 창병모
데이터 베이스의 내부 구조.
1. 데이터베이스 환경.
가상 기억장치 (Virtual Memory)
Presentation transcript:

운영체제 (Operating Systems) 파일 시스템 (File System) 문양세 강원대학교 IT대학 컴퓨터과학전공

강의 목표 파일 시스템의 기능을 설명한다. 파일 시스템 인터페이스의 특징을 기술한다. 접근 방법, 파일 공유, 파일 잠금, 디렉터리 구조를 포함한 파일 시스템 설계의 트레이드-오프에 관해 논의한다. 파일 시스템 보호(protection)에 대해 논의한다.

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

파일 개념(File Concept) 파일 시스템 파일이란? 연속적인 논리적 주소 공간(contiguous logical address space) 파일 타입 데이터 파일: 숫자, 문자, 바이너리, 레코드 등 프로그램 파일: 소스 프로그램, 실행 프로그램 등 파일 구조 None: sequence of words, bytes 단순 레코드 구조 라인(lines) 고정 길이(fixed length) 가변길이(variable length) 복잡한 구조(complex structure): 포맷을 갖춘 문서(formatted document) 재배치 가능 로드 파일(relocatable load file)

파일 속성(File Attributes) 파일 시스템 파일은 운영체제마다 다른 속성을 가질 수 있음 전형적으로 가지는 속성 이름(name): 사람이 읽을 수 있는 형태로 제공되는 정보 식별자(identifier): 파일 시스템 내에서 해당 파일을 유일하게 식별하는 식별자 (식별자는 사람이 읽을 수 없는 형태의 파일 이름임) 타입(type): 여러 파일 타입을 제공하는 시스템에서 필요(실행, 텍스트, 프로그램 등) 위치(location): 파일이 존재하는 장치와 장치 내 해당 파일에 대한 포인터 크기(size): 현재 파일의 크기 보호(protection): 누가 읽기, 쓰기, 실행이 가능한가 시간(time), 날짜(date), 사용자 식별(user identification)

파일 연산(File Operations) (1/2) 파일 시스템 파일 생성(create) 파일 시스템 내 공간을 찾아 할당하고, 이를 디렉터리에 등록한다. C언어에서, open(…, O_CREAT)에 해당 파일 쓰기(write) 주어진 버퍼의 내용을 파일 포인터(file pointer)가 가리키는 위치에 쓴다. C언어에서, write()에 해당 파일 읽기(read) 파일 포인터(file pointer)가 가리키는 위치의 내용을 버퍼에 읽는다. C언어에서, read()에 해당

파일 연산(File Operations) (2/2) 파일 시스템 파일 내 위치 재설정(reposition) 파일 포인터(file pointer)가 가리키는 위치를 변경한다. C언어에서, seek()에 해당 파일 삭제(delete) 해당 파일이 차지한 공간을 방출하고, 정보를 디렉터리에서 삭제한다. C언어에서, unlink()에 해당 (관련 명령어는 rm) 파일 절단(truncate) 파일의 속성은 유지한 상태에서, 해당 파일의 일부 내용을 지운다. C언어에서, truncate()에 해당

오픈 파일 테이블(Open File Table) 파일 시스템 프로세스에 의해 열린 파일을 관리하기 위해, 운영체제는 오픈 파일 테 이블을 관리한다. 오픈 파일 테이블의 주요 항목 파일 포인터: 가장 최근에 읽기/쓰기를 한 위치를 가리킨다. 파일 오픈 개수: 몇 개의 프로세스가 해당 파일을 열었는지를 나타낸다. (0이 되면 모두 닫은 것이고, 그렇게 되어야 제거를 할 수 있다.) 파일의 디스크 위치: 디스크 상에 해당 파일의 위치(들)를 가리킨다. 접근 권한: 각 프로세스가 어떤 모드(쓰기/읽기/실행)로 파일을 사용하는지 나타낸다.

파일 타입(File Types) 파일 시스템

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

접근 방법(Access Methods) (디스크에 있는) 파일에 접근하는 방법을 일컫는다. 파일 시스템 (디스크에 있는) 파일에 접근하는 방법을 일컫는다. 접근 방법은 크게 (1) 순차 접근(sequential access)과 (2) 직접 접근(direct access)으로 나뉜다.

순차 접근(Sequential Access) 파일 시스템 파일의 정보가 레코드 순서대로 차례차례 처리된다. 주요 연산 read next: 다음 부분(레코드)을 읽고, 파일 포인터가 자동으로 증가한다. write next: 다음 부분(레코드)에 쓰고, 파일 포인터가 자동으로 증가한다. rewind, seek: 파일 포인터를 되돌리거나, 지정된 위치로 이동시킨다. 참조: C언어에서, 파일 관련 시스템 호출은 순차 접근을 가정한다.

직접 접근(Direct Access) (1/2) 파일 시스템 상대 접근이라고도 불리며, 파일에 저장된 논리 레코드들을 특별한 순서 없이 빠르게 읽고 쓸 수 있다. 일반적으로 디스크 모델에 기반을 두는데, 이는 디스크가 무작위 파일 블록에 임의적 접근을 허용하기 때문이다. 예를 들어, n이 블록 번호라 할 때, read n, write n을 제공한다.

직접 접근(Direct Access) (2/2) 파일 시스템 직접 접근 기반의 색인 기반 파일 예제

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

디렉터리 구조(Directory Structure) 파일 시스템 수 많은 파일들을 flat하게 관리할 수는 없다! 디렉터리란 파일들에 관한 정보를 담은 노드들의 모임이다. (A collection of nodes containing information about all files.) F1 F2 F3 F4 Fn Directory Files

디스크 구조(Disk Structure) 파일 시스템 디스크는 파티션(partition)으로 분할될 수 있다. 파티션은 미니디스크(minidisk) 혹은 슬라이스(slice)라고도 불린다. 디스크(혹은 파티션)는 장애에 대비해 RAID로 사용될 수 있다. 디스크(혹은 파티션)는 파일 시스템 구성없이 원시(raw) 파일로도 사용될 수 있다. 파일 시스템을 가진 개체(entity)를 볼륨(volume)이라 부르며, 하나의 볼 륨은 하나 이상의 디스크(혹은 파티션)으로 구성될 수 있다. 볼륨은 논리적인 가상 디스크(virtual disk)로 취급되며, 시스템에 존재하 는 파일에 대한 정보를 가진다.

전형적인 파일 시스템의 구조 파일 시스템

디렉터리에 대한 연산 파일 찾기(search for a file): 디렉터리 구조를 탐색하여 파일을 찾는다. 파일 시스템 파일 찾기(search for a file): 디렉터리 구조를 탐색하여 파일을 찾는다. 파일 생성(create a file): 새로운 파일을 생성하여 디렉터리에 추가한다. 파일 삭제(delete a file): 필요치 않은 파일을 디렉터리에서 삭제한다. 디렉터리 나열(list a directory): 디렉터리 내 파일들을 나열하고, 각 파일 에 대한 디렉터리 항목 내용을 보여준다. 파일 재명명(rename a file): 파일 이름을 변경하며, 경우에 따라 디렉터 리 구조 내에서 항목의 위치가 변경될 수 있다. 파일 시스템 순회(traverse the file system): 백업 등의 목적으로 전체 파 일 시스템의 모든 디렉터리를 순회한다.

디렉터리 조직으로 얻을 수 있는 점 탐색 효율성(efficiency): 파일을 빠르게 찾을 수 있다. 파일 시스템 탐색 효율성(efficiency): 파일을 빠르게 찾을 수 있다. 네이밍(naming): 사용자에게 편리하다. 두 사용자가 다른 파일에 대해 같은 이름을 부여할 수 있다. 하나의 파일에 서로 다른 여러 이름을 가질 수 있다. (eg: 바로가기) 그룹핑(grouping): 파일들을 그 성질에 따라 논리적으로 그룹핑할 수 있다. 이 디렉터리에는 Java 소스 파일들을 모아둔다. 저 디렉터리에는 작년에 작업한 이미지 파일들을 모아둔다.

1단계 디렉터리(Single-Level Directory) 파일 시스템 모든 사용자에 대해 1단계 디렉터리를 제공한다. 네이밍 문제: 여러 사용자가 있어도 같은 이름의 파일을 쓸 수 없다. 그룹핑 문제: 논리적 그룹핑이 어렵다.

2단계 디렉터리(Two-Level Directory) 파일 시스템 각 사용자 별로 디렉터리를 분리하여 제공한다. 파일 식별은 “사용자/파일명”으로 이루어진다. 사용자가 다르다면 같은 이름의 파일을 가질 수 있다. 1단계에 비해, 효율적 탐색이 가능하다. 1단계와 마찬가지로, 논리적 그룹핑이 어렵다.

트리 구조 디렉터리(Tree-Structured Directory) (1/2) 파일 시스템 다단계 트리 형태로, 사용자는 자신의 서브디렉터리(subdirectory)를 만 들어 파일을 구성할 수 있다.

트리 구조 디렉터리(Tree-Structured Directory) (2/2) 파일 시스템 효율적 탐색을 수행할 수 있다. 논리적 그룹핑이 가능하다. 현재 디렉터리(current directory, working directory) 개념을 제공한다. 절대 경로(absolute path)와 상대 경로(relative path) 이름을 제공한다. cd /spell/mail/prog cd /spell  cd ./mail/prog 파일의 삭제 rm <file names> 새로운 서브디렉터리는 현재 디렉터리에 생성된다. 만일, 현재 디렉터리가 /mail이고, mkdir count를 수행한다면 오른쪽 같이 생성된다. 여기서, mail 디렉터리를 지운다면? mail prog copy prt exp count

비순환 그래프 디렉터리(Acyclic-Graph Directory) (1/2) 파일 시스템 합동 프로젝트를 수행하는 두 프로그래머는 공동의 서브디렉터리를 갖 고자 한다. 복사하여 유지하는 것 보다는 서브디렉터리를 공유하는 것이 효율적이다. 비순환 그래프 구조를 채택하여 서브디렉터리나 파일을 공유할 수 있다.

비순환 그래프 디렉터리(Acyclic-Graph Directory) (2/2) 파일 시스템 하나의 디렉터리(파일)에 대해 두 개의 다른 이름을 갖는다(aliasing). 오늘날 Linux, Windows에서는 심볼릭 링크 혹은 바로가기로 유사 기능 을 제공한다. Dangling pointer 문제: 심볼릭 링크나 바로가기는 있는데, 실제 해당 파일은 삭제되는 현상을 일컫는다. UNIX에서는 하드 링크(hard link) 기능을 제공하기도 한다.

일반 그래프 디렉터리(General Graph Directory) 파일 시스템 트리 구조에 새로운 링크를 추가  일반 그래프 구조 사이클이 생성될 수 있으며, 이를 방지하기 위해 파일에만 링크를 허용하고 디렉터리에는 허용하지 않거나, 가비지 컬렉션을 사욯하거나, 매 링크 추가시 사이클 추가 여부를 검사한다.

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

파일 시스템 마운팅 파일 시스템 운영체제는 디바이스 이름과 마운트 포인트(mount point)를 전달받아 해당 디바이스를 주어진 포인트에 마운트한다. 예제: /disk/rsd0를 /home/users에 마운트 한다. Linux에서는 df 명령을 사용해 마운트 상황을 알 수 있다. 마운트 과정에서, 운영체제는 디바이스가 유효한 파일 시스템을 포함하 는지 검증한다.

마운트 예제 (1/2) 파일 시스템 그림 (a): 파일 시스템의 기존 상태 그림 (b): 마운트되지 않은 파티션

마운트 예제 (2/2) 파일 시스템 앞서 그림 (b)의 파티션이 마운트 포인트 /users에 마운트 된 경우

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

파일 공유(File Sharing) 다수 사용자(Multiple Users) 시스템에서 파일 공유는 필수적 요소이다. 파일 시스템 다수 사용자(Multiple Users) 시스템에서 파일 공유는 필수적 요소이다. 파일 공유는 보호 기법(protection scheme)을 통해 이루어진다. 단일 사용자에서 다수 사용자 환경으로 변하며, 소유자(owner)와 그룹 사용자 개념이 도입된다. User ID: 사용자를 식별하며, 각 사용자별로 접근 권한(permission)을 부여한다. Group ID: 그룹에 포함된 사용자들에게 대한 그룹별 접근 권한을 부여한다. 분산 시스템(distributed system)에서는 파일이 네트워크를 통해 공유되 어야 한다. Network File System (NFS)가 일반적인 분산 파일 공유 방법이다. 최근에는 클라우드 기반의 HDFS(Hadoop Distributed File System)가 널리 쓰인다.

파일 보호(File Protection) 파일 시스템 파일 소유자/생성자는 각 파일에 대해 누가 해당 파일을 사용할 수 있으며, 어떤 기능을 수행할 수 있는지를 제어(control)할 수 있다. 파일에 대한 접근 종류 읽기(read) 쓰기(write) 실행(execute) 추가(append) 삭제(delete) 리스트(list)

Windows XP Access Control List Management 파일 시스템

A Sample UNIX Directory Listing 파일 시스템

강의 목차 파일 시스템 파일 개념 접근 방법 디렉터리와 디스크 구조 파일 시스템 마운팅 파일 공유와 파일 보호 요약

요약 파일이란? 연속적인 논리적 주소 공간 파일 속성: 이름, 식별자, 타입, 위치, 크기, 보호, 시간, 날짜 등 파일 시스템 파일이란? 연속적인 논리적 주소 공간 파일 속성: 이름, 식별자, 타입, 위치, 크기, 보호, 시간, 날짜 등 파일 연산: 생성, 쓰기, 읽기, 위치 재설정, 삭제, 절단 파일 접근 방법: 순차 접근, 직접 접근 디렉터리와 파일 시스템 구조 1단계 디렉터리, 2단계 디렉터리 트리 구조 디렉터리, 비순환 그래프 디렉터리, 일반 그래프 디렉터리 파일 시스템 마운팅 파일 공유: 다수 사용자 환경에서 파일 공유, NFS 파일 보호: 접근 제어 목록(access control list) 관리