Fundamental Notes/Operating Systems 12

Mass-Storage Structure

1. 이동 헤드 디스크 · 회전지연시간(rotational latency time;= 대기시간) : 데이타가 현재 위치에서 판독/기록 헤드에 인접한 위치까지 회전하는 데 걸리는 시간 · 탐색시간(seek time) : 고정축을 새로운 실린더로 옮기는 과정 · 전송시간(transmission time) : 판독/기록 헤드에 의해서 판독, 기록되는 시간 2. 디스크 스케쥴링 ① 디스크 스케쥴링 탐색시간을 최소화하기 위해, 대기중인 디스크 요청을 적절히 배열하는 작업. 즉, 레코드를 탐색하는 시간을 최소화하기 위하여 요구 대기행렬의 순서를 정하는 작업 ② 작은부하의 상황에서는 FCFS가 요구를 처리하는 데 적당하고, 부하가 큰 상황하에서는 스케쥴링이 FCFS보다 더 좋은 수행결과를 가져옴 ③ 스케쥴링 정책을 ..

File System

파일시스템 1. 파일 시스템 · 파일(file) : 정보처리 목적상 하나의 단위로 취급되는 관련 데이타 기록의 집단 · 파일을 하나의 단위로 행해지는 작업 : Open, Close, Create, Destory, Copy, Rename, List · 파일내의 각 데이타 레코드를 단위로 이루어지는 작업 : Read, Write, Update, Insert, Delete · 소멸성(volatility):파일에 자료를 추가하거나 파일로부터 제거하는 작업의 빈도수 · 활성률(activity):프로그램이 한번 수행되는 동안 처리되는 레코드 수의 백분율 · 크기(size):파일에 저장되어 있는 정보의 양 2. 파일 시스템의 기능 · 사용자가 파일을 생성, 수정, 제거할 수 있도록 함 · 적절한 제어방식을 통해 타인..

Virtual Memory

Demanding Paging정의페이지 레벨의 스와핑필요 할 때만 메모리에서 가져옴스와핑은 프로세스 단위로 움직이지만 디멘드 페이징은 페이지 레벨이라는 것의 차이가 있음OS는 시스템내에 프로세스에 의해서 할당된 모든 데이터의 페이지 캐시로서 메인 메모리를 사용함페이지를 할당 받을 때는 물리적 메모리 프레임에서 할당을 받음물리 메모리가 모두 찾는데도 불구하고 새로운 페이지를 할당 해야 하면 이빅트(Evict)를 하여 메모리를 확보함.이빅트된 페이지는 디스크로 감물론 더티인 상태에서만 쓰일 필요가 있음스왑 파일로 감메모리와 디스크 사이의 페이지 이동은 OS에 의해서 이루어짐어플리케이션에게는 Transparent 함.Page faults이빅트 된 페이지의 Virtual Address를 참조하는 프로세스에게 일..

Main Memory - Paging & Segmentation

PagingPaging프로세스의 물리 주소 공간이 불연속적일 수 있음을 허용함물리 메모리는 프레임이라고 불리는 고정 된 사이즈의 블럭으로 나누어짐로지컬 메모리는 페이지라고 불리는 고정 된 사이즈의 블럭으로 나누어짐.페이지나 프레임의 사이즈는 2의 승수로 제공됨, 일반적으로 512B ~ 8KB프레임과 페이지가 용어상의 차이만 존재하지 같은 사이즈의 블락을 가짐OS는 모든 프리 프레임의 정보를 유지하고 있음.페이지 매핑 테이블을 구성함. 사용자의 관점사용자에게는 VAS(가상 주소 공간)를 통해서 0에서 N까지 연속적인 메모리 공간을 보여줌 현실적으로 페이지는 물리 메모리상에 스케터 되어 있음V2P의 페이지 매핑매핑은 프로그램에게 보여지지 않음.Protection제공VAS 바깥의 주소에 대해서는 접근 할 ..

Main Memory - Swapping & Contiguous Memory Allocation

1. 기억장치의 계층구조 소용량, 고속, 고가 대용량, 저속, 저가 Register Cache Memory Associative memory(CAM) 주기억 CCD(Charge Coupled Device) 보조기억 (Magnetic Drum, Magnetic Disk Magnetic Tape , Card) * Virtual Memory 주기억장치는 프로그램이 실행되기 위한 실행코드와 데이터가 저장되는 메모리로 CPU에서 필요시 빠르게 접근할 수 있다. 2. 연속할당과 불연속 할당기법 가. 연속할당(contiguous storage allocation) ① 프로그램을 연속된 메모리 공간에 할당하는 방법으로 초기의 주기억장치 할당 방법으로 사용되었다. ② 기억장치의 공간보다 더 큰 프로그램은 적재하지 못 한..

Deadlock

시스템 모델→ 컴퓨터 시스템은 여러 프로세스와 CPU를 포함하여 여러 자원들을 사용하면서 운용된다. 1. 자원 (resources) : 메모리공간, CPU cycles, files, I/O 장치, 둘이상의 CPU에서 CPU 등.2. 자원의 이용 절차• 요청(Request) : 자원을 요청하여 즉시 할당받지 못하면 대기한다.• 사용(Use) : 프로세스가 자원을 운용한다.• 해제(Release) : 프로세스가 자원을 반환한다. Deadlock Charcaterization1. 교착상태의 개념• 대기중인 프로세스가 자신의 상태를 바꾸지 못하는 경우 : 한 집합내의 프로세스에 의해 일어날 수 있는 어떤 사건(event)을 기다리고 있는 그 집합내의 모든 프로세스는 교착상태에 있다고 함• 교착상태는 시스템의 상..

Process Synchronization

1.Background - 협력적 프로세스는 공유 데이터를 동시 접근하여 데이터의 비일관성을 낳을 수 있다. - 동일한 자료를 접근하여 조작하고 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황을 RaceCondition(경쟁 상황)이라 한다. Race Condition에서 보고 하기 위해 동기화가 필요하다. 2.임계 구역 문제(The Critical-Section Problem) - 상호 배제(mutual exclusion): 한 프로세스가 자신의 critial section 안에 들어가서 수행을 하는 동안 다른 프로세스들은 그들의 critical section을 들어갈수 없다. - 진행(progress): critical section에 실행되는 프로세스가 없고 critical section에..

CPU Scheduling

1.Basic Concepts - 다중프로그래밍의 목적은 CPU 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는데 있다. - CPU가 유휴 상태가 될 때마다, OS는 준비 완료 큐에 있는 프로세스들 중에서 하나를 실행해야한다. *반드시 FIFO 방식의 큐가 아니어되 된다. - CPU scheduling decisions may take place when a process. :Switches from running to waiting state.(입/출력 요청, 자식프로세스중 하나가 종료되기 위해 wait를 호출) ->Non preemptive. :Switches from running to ready state.(인터럽트 발생) ->preemptive. :Switches from wai..

Thread

Threads는 쓰레드ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성된다.Thread들은 프로그램 코드, 데이타 및 기타 자원들을 공유한다. *Benefits 1.응답성: 응용프로그램이 긴 작업을 수행하더라도 프로그램의 수행이 계속된는 것을 허용. 2.자원공유: 자동적으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다. 같은 주소내에 활동성 쓰레드를 여러게 만들 수있다. 3.경제성.:process creation, context switching time은 thread creation, context switcing 의 30배,5배. 4.다중 처리기 구조의 활용: 다중 처리기 구조에서 더욱 속도 증가. *user level Threads - 사용자 수준의 쓰레드 라이브러리에 의해 구현되며 커널..

Process

Process 1. 프로세스의 정의 ① 실행중인 프로그램 ② 주기억장치에 저장된 프로그램 ③ PCB(Process Control Block)와 결합된 형태의 코드 //PCB란 프로세스가 작업도중 필요한 정보나 스케쥴에 필요한 여러 가지 정보를 기억 하고 있는 구조체 ④ 작업 스케쥴러(Job Scheduler)에 의해서 생성되어 주기억 장치에 진입함 2. 프로세스와 프로그램의 차이점 프로그램은 수동적 개체(passive entity)이고 프로세스는 능동적 개체 (active entity)이며 일 반적으로 프로세스는 프로그램보다 작은 단위로 되어있다. 3. 프로세스의 계층 ① 사용자 프로세스 : 사용자 코드를 수행하는 프로세스 ② 운영체제 프로세스 : 사용자가 입력한 명령어를 해석하는 쉘 프로세스나 입출력 ..