반응형

Software Courses/Operating System 23

I/O system

1. I/O mechanisms - 프로세서와 I/O 장치 사이에 데이터를 보내는 방법 1) processor controlled memory access - 프로세서가 모든 데이터 전송을 처리 (1) Pooling - 프로세서가 주기적으로 순환하면서 I/O 장치의 상태(전송준비, 전송상태 등)를 확인 - 장점 * I/O 장치가 빠르면서 데이터 전송이 잦은 경우 효율적 - 단점 * 프로세서에게 큰 부담 (2) Interrupt - I/O 장치가 작업을 완료 후, 자신의 상태를 프로세서에게 전달 - Interrupt 발생 시, 프로세서는 데이터 전송 수행 - 장점 * Pooling 대비 overhead가 적음 * 불규칙적인 요청 처리에 적합 - 단점 * Interrupt handling overhead -..

File system implementation

1. Allocation methods - File 저장을 위한 디스크 공간 할당 방법 1) Continuous allocation - 한 file을 디스크의 연속된 block들에 저장 - 장점 * 효율적인 file 접근 (순차, 직접 접근) - 단점 * 새로운 file을 위한 공간 확보가 어려움 * 외부 단편화 문제 * File의 크기가 커질 경우, 공간을 확보해야 하는데 연속되게 공간 확보을 못할 수 있음 2) Discountiunous allocation (1) Linked allocation - File이 저장된 block들을 linked list로 연결 - 장점 * 외부 단편화 없음 * 간단한 구현 - 단점 * 직접 접근하는데 O(n) 시간 복잡도 * 포인터 저장 공간 필요 - 사용 * FAT(..

File protection

File protection - File에 대한 부적절한 접근 방지 접근 제어가 필요한 연산들 - Read(R) - Write(W) - Execute(X) - Append(A) 기법 1) Password 기법 - 각 file들에 password 부여 - 모든 파일에 password를 부여하는 것은 비현실적 2) Access matrix 기법 - 범위(domain)과 객체(object) 사이의 접근 권한을 명시 - 용어 표현 * Domain : 같은 권한을 갖는 그룹(사용자, 프로세스) * Object : 접근 대상(file) (1) Access list - access matrix의 column을 list로 표현 - Object 생성 시, 각 domain에 대한 권한 부여 - Domain이 Object에..

Directory structure

Directory 구조 종류 - Flat (single-level) directory structure - 2-level directory structure - Hierarchical (tree-structure) directory structure - Acyclic graph directory structure - General graph directory structure 1) Flat (single-level) directory structure - file system 내에 하나의 directory만 존재 - 문제 * 이름 짓기 : 항상 다른 이름만 가능 * 보호 : 덮어 쓰여지면 이전 내용 삭제 * 파일 관리 : 분류/정리가 안됨 - 예시 * 초창기 MP3에는 폴더가 한 개 였습니다. 그래서 음..

File System

File system - 사용자들이 사용하는 파일들을 관리하는 운영체제의 한 부분 File - 보조 기억 장치에 저장된 연관된 정보들의 집합 - 내용에 따른 분류 * program file * data file - 형태에 따른 분류 * text file * binary file 구성 - files : 연관괸 정보들의 집합 - directory : file들을 분류/보관 - partition : directory들의 집합을 논리적/물리적으로 구분 파일 접근 방법 - sequential access (순차 접근) : file을 순차대로 접근 - directed access (직접 접근) : 원하는 block을 직접 접근 - indexed access : index를 참조하여, 원하는 block을 찾은 후에 ..

Disk System

Disk pack (HDD) - 데이터 영구 저장 장치 (비휘발성) - 구성 * sector : 데이터 저장/판독의 물리적 단위 * track : platter 한 면에서 중심으로 같은 거리에 있는 sector들의 집합 * cylinder : 같은 반지름을 갖는 track들의 집합 * platter : 원형 금속판, 데이터의 기록/판독이 가능한 기록 매체 * surface : platter의 윗면과 아랫면 Disk drive - Disk pack에 데이터를 기록하거나 판독할 수 있도록 구성된 장치 - 구성 (위 그림 참조) * head : 디스크 표면에 데이터를 기록/판독 * arm : head를 고정/지탱 * positioner : arm을 지탱하고 head를 원하는 track으로 이동 * spindl..

[Memory] Other considerations

Page size - 적당한 크기가 좋음 page가 작을 경우 page가 클 경우 page table이 큼 : page 수가 많아서 page table이 작음 : page 수가 작아서 내부 단편화 감소 : 프로그램을 잘랐을 때 꼬투리가 적게 생성 내부 단편화 증가 : 프로그램을 잘랐을 떄 꼬투리가 많이 생성 I/O 시간 증가 : 많은 page를 읽기 때문에 I/O 시간 감소 : 적은 page를 읽기 때문에 Locality 향상 : 사용하지 않는 영역을 적게 포함하여 가져오기 때문에 Locality 저하 : 사용하지 않는 영역을 많이 포함해서 가져오기 때문에 page fault 증가 : page를 여러 번 가져오기 때문에 page fault 감소 : page를 여러 번 가져오지 않기 때문에 - 최근 경향 ..

[Memory] Replacement strategies

이전 post에서 가상 메모리 관리에 대해서 알아보았습니다. SW component에서 replacement strategies에 대해서 더 알아보겠습니다. Locality - 프로세스가 프로그램/데이터의 특정 영역을 집중적으로 참조하는 현상 - Replacement strategies에서 기준을 제시 - 원인 : loop 구조, 자료구조 - 공간적 지역성 : 참조한 영역과 인접한 영역을 참조하는 특성 - 시간적 지역성 : 한 번 참조한 영역을 곧 다시 참조하는 특성 Fixed allocation - 프로세스를 정해진 크기의 page frame으로 분할하여 메모리에 할당 - 할당하려고 하니 자리가 없어서 어떤 것과 교첼할 것인가? Fixed allocation을 위한 교체 기법 - MIN(OPT) alg..

[Memory] Virtual memory management

가상 메모리(기억장치) - Non-continuous allocation : 사용자 프로그램을 block으로 분할하여 적재/실행 - paging/segmentation system 가상 메모리 관리의 목적 - 가상 메모리 시스템 성능 최적화 - 성능의 기준 : page fault frequency(발생 빈도), page fault rate(발생률), etc 용어 표현 - page reference string : ω * 프로세스의 수행 중에 참조한 페이지 번호와 순서 기록 * ω = r1, r2, …, ri * i : 페이지 번호 - page fault rate : F(ω) * F(ω) = number of page fault during ω / |ω| * 전체 참조한 페이지 수 중에서 page faul..

[Memory] Hybrid paging segmentation system

Hybrid paging segmentation system - 논리 단위인 segment로 분할 -> 각 segment를 고정된 크기인 page로 분할 -> page 단위로 메모리에 적재 특징 - page sharing/protection이 쉬움 - 메모리 할당/관리 overhead가 적음 : 메모리에 적재는 paging system으로 하기 때문에 - 외부 단편화 없음 - 전체 테이블의 수 증가로 메모리 소모 큼 - direct mapping의 경우, 메모리에 3배 접근하기 때문에 성능 저하 (TLB 같은 방법으로 해결 가능) - 내부 단편화 발생 Address mapping - 가상 주소 : v = (s, p, d) - FPM과 유사 - SMT와 PMT 모두 사용 * 각 프로세스 마다 하나의 SMT..

반응형