목록전체 글 (163)
DevGang
1. 파일 파일의 개요 - 파일은 사용자가 작성한 서로 관련 있는 레코드의 집합체를 의미 - 파일 특성을 결정하는 기준 소명성(Volatility) 활성률(Activity) 크기(Size) 2. 파일 시스템 사용자와 보조기억장치 사이에 인터페이스를 제공 사용자가 파일을 생성, 수정, 제거할 수 있게 함 불의의 사태에 대비하여 파일의 백업(Backup)과 복구(Recovery)등의 기능을 제공 파일을 안전하게 사용할 수 있도록 하고 파일이 보호되어야 함 파일의 정보가 손실되지 않도록 데이터 무결성을 유지해야 함 3. 파일 디스크립터(File Descriptor) 파일을 관리하기 위한 시스템이 필요로 하는 파일에 대한 정보를 갖는 제어 블록을 의미 파일마다 독립적으로 존재하며 시스템에 따라 다른 구조를 가질..
1. 디스크 스케줄링의 개요 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우 데이터를 액세스 하기 위해 디스크 헤드가 움직이는 경로를 결정하는 기법 2. 목적 처리량의 최대화 응답 시간의 최소화 응답 시간 편차의 최소화 3. 디스크 스케줄링 시 발생하는 병목현상 제거 방법 제어장치가 포화상태가 되면 해당 제어장치에 부착된 디스크의 수를 감소시킴 입출력 채널이 복잡하면 그 채널에 부착된 제어장치 중 몇 개를 다른 채널로 이동 입출력 채널이 복잡하면 채널을 추가 4. 디스크 스케줄링 기법 - FIFO(=FCFS) 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법 디스크 대기 큐에 있는 트랙 순서대로 디스크 헤드를 이동 디스크 대기 큐에 들어온 순서대로 서비스를 하기 때문..
1. 가상 기억장치 개요 가상 기억장치는 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로, 용량이 적은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법 프로그램을 여러 개의 작은 블록 단위로 나누어서 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리 주기억장치의 크기보다 큰 프로그램을 실행하기 위해 사용 주기억장치의 이용률과 다중 프로그램의 효율을 높일 수 있음 가상 기억장치에 저장된 프로그램을 실행하기 위해서 가상 기억장치의 주소를 주기억장치의 주소로 바꾸는 주소 변환(Mapping) 작업이 필요함 블록 단위로 사용하기 때문에 연속 할당 방식에서 발생할 수 있는 단편화를 해결 페이징 기법과 세그먼테이션 기법으로 나눔 운영체제의 설계가 복잡해짐 오버레이 문..
1. 단일 분할 할당 기법 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법 가장 단순한 기법으로 초기에 많이 사용하던 기법 주기억장치보다 큰 사용자 프로그램을 실행하기 위해 오버레이 기법과 스와핑 기법을 사용 - 오버레이(Overlay) 기법 작업의 모든 부분들이 동시에 주기억 장소에 상주해 있을 필요가 없을 때 작업을 분할하여 필요한 부분만 교체 - 스와핑(Swapping) 기법 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체 2. 다중 분할 할당 기법 - 고정 분할 할당 기법 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 ..
1. 반입 전략(Fetch) 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략 요구 반입 : 실행 프로그램이 요구할 때 비로소 적재하는 방법 예상 반입 : 앞으로 요구될 가능성이 큰 데이터 또는 프로그램을 예상하여 주기억장치로 미리 옮기는 방법 2. 배치(Placement) 전략 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략 최초 적합(First Fit) : 적재 가능한 공간 중 첫 번째 공간에 배치 최적 적합(Best Fit) : 적재 가능한 공간 중 단편화(남는 기억공간)가 가장 적은 공간에 배치 최악 적합(Worst Fit) : 적재 가능한 공간 중 가장 큰 공간에 배치 3. 교체(Replacement) 전략 - ..
1. 스케줄링의 개요 스케줄링은 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에 할당하는 작업을 의미 - 작업 스케줄링(Job Scheduling) 어떤 프로세스가 시스템의 자원을 차지할 수 있는지를 결정하여 준비상태로 큐로 보내는 작업을 의미 작업 스케줄러(Job Scheduler)에 의해 수행 - 프로세서 스케줄링(Processor Scheduling) 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작 프로세서 스케줄러(Processor Scheduler)에 의해 프로세서 스케줄링 및 문맥 교환이 수행됨 * 프로세서 스케줄러 하나의 프로세스를 준비(ready) 상태에서 실행(run) 상태로 전이시킴 2. 스케줄링의 목적 처리율 증가 CPU 이용률..
1. 교착 상태(Deadlock)의 개념 교착상태는 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미 교착상태는 하나 또는 둘 이상의 프로세스가 더 이상 계속할 수 없는 자원의 할당과 해제를 기다리고 있는 상태를 말함 2. 교착 상태 발생 조건 상호 배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함 점유 및 대기(Hold and Wait) : 프로세스가 이미 자원을 갖고 있으면서 다른 자원의 할당을 요구 비선점(Non-Preemption) : 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 환형 대기(Circular..
1. 상호 배제 기법(Mutual Exclusion) 공유자원을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록 하며, 다른 프로세스가 공유자원에 대하여 접근하지 못하게 제어하는 기법 여러 프로세스가 동시에 공유 자원을 사용할 때 각 프로세스가 번갈아 가며 공유 자원을 사용하도록 하는 것으로 임계 구역을 유지하는 기법임 - 데커(Dekker) 알고리즘 교착상태가 발생하지 않음을 보장 공유 데이터에 대한 처리에 있어서 상호 배제를 보장 별도의 특수 명령어 없이 순수하게 소프트웨어로 해결 2. 동기화 기법(Synchronization) 두 개 이상의 프로세스를 한 시점에서는 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 것으로 상호 배제의 한 형태 동기화 구현 방법에는 세마포..
1. 병행 프로세스(Concurrent Process) 두 개 이상의 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미 여러 프로세스들이 독립적으로 실행되는 것을 독립적 병행 프로세스 서로 협력하며 동시에 실행되는 것을 협동적 병행 프로세스 다중 처리 시스템이나 분산 처리 시스템에서 중요한 개념으로 사용됨 ※ 병행 프로세스들의 고려 사항 공유 자원을 상호 배타적으로 사용해야 함 병행 프로세스들 사이에는 협력 또는 동기화가 이루어져야 함 교착상태를 해결해야 하며 병행 프로세스들의 병렬 처리도를 극대화해야 함 2. 임계 구역(Critical Section) 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서는 하나의 프로세스만 자원 또는 데이터를 사용..
1. 스레드의 정의 (Thread) 프로세스 내에서의 작업 단위로 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 두 개 이상의 스레드가 존재하는 경우에는 다중 스레드라고 함 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고도 함 프로세스 내부에 포함되는 스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신함 스레드를 사용하면 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상할 수 있음 2. 스레드의 분류 - 사용자 수준의 스레드 사용자가 만든 라이브러리를 사용하여 스레드를 운용 속도는 빠르지만 구현이 어려움 - 커널 수준의 스레드 운영체제의 커널에 의해 스레드를 운용 구현이 쉽지만 속도가 느림 3. 문..