목록정보처리/OS (21)
DevGang
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/UzMsl/btqT3tf4Mdj/2kcX64jU1qdGA24o5fh5l1/img.png)
1. 단일 분할 할당 기법 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만이 주기억장치의 사용자 영역을 사용하는 기법 가장 단순한 기법으로 초기에 많이 사용하던 기법 주기억장치보다 큰 사용자 프로그램을 실행하기 위해 오버레이 기법과 스와핑 기법을 사용 - 오버레이(Overlay) 기법 작업의 모든 부분들이 동시에 주기억 장소에 상주해 있을 필요가 없을 때 작업을 분할하여 필요한 부분만 교체 - 스와핑(Swapping) 기법 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체 2. 다중 분할 할당 기법 - 고정 분할 할당 기법 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLs1J3/btqTYRoLBtT/fvtXrFACsQrfZsZ0q6SWHk/img.png)
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 이용률..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkNBbw/btqT0uzZX4Y/TqM3QLsLRLFIZiKOagaCCK/img.png)
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. 문..
1. 인터럽트 종류 및 발생 원인 전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우 기계 착오 인터럽트(Machine Check Interrupt) : CPU 등의 기계가 고장을 일으킨 경우 SVC인터럽트(Supervisor Call Interrupt) : 입출력 수행, 기억장치 할당 등을 위해 발생 입/출력 인터럽트(Input-Output Interrupt) : 수행 도중 입/출력이 발생하는 경우 외부 신호 인터럽트 : 정해진 시간이 끝나거나 오퍼레이터의 키 조작 발생한 경우 재시작 인터럽트 : 오퍼레이터가 재시작 버튼을 눌러 시스템을 재 부팅시키는 경우 프로그램 검사 인터럽트(Program Check Interrupt) 0으로 나누기가 발생하는 경우 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MFfaJ/btqTPzh4SsB/7c0ms6iiDoRVGBxjslIK7K/img.png)
1. 프로세스의 정의 PCB를 가진 프로그램 실기억 장치에 저장된 프로그램 프로세서(CPU)가 할당되는 실체 프로시저가 활동 중인 실체 비동기적 행위를 일으키는 주체 운영체제가 관리하는 실행 단위 2. 프로세스 제어 블록(PCB , Process Control Block) PCB는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 종료되면 PCB는 제거됨 - PCB에 저장되어 있는 정보 프로세스의 현재 상태 프로세스 고유 식별자(PID , Process IDentifier) 스케줄링 및 프로세스의 우선순위 프로그램의 위치 CPU 레지스터 정보 누산기(Accumulator) 인덱스 레지스터(Index Register) 프로그램 카운터..
1. 시스템 소프트웨어 개념 시스템 소프트웨어는 시스템 전체를 작동시키는 프로그램으로, 프로그램을 주기억장치에 적재시키거나 인터럽트 관리, 장치 관리, 언어 번역 등의 기능을 담당 시스템 소프트웨어의 대표적인 프로그램으로 운영체제가 있으며, 그 외에는 언어 번역 프로그램, 매크로 프로세서, 링커, 라이브러리, 로더 등이 있음 2. 시스템 소프트웨어의 구성 1) 제어 프로그램 감시 프로그램(Supervisor Program) : 시스템의 모든 동작 및 상태를 관리하고 감독하는 프로그램으로, 운영체제의 가장 중요한 역할을 담당 작업 제어 프로그램(Job Control Program) : 어떤 업무를 처리하고 다른 작업으로의 이행을 자동적으로 처리하기 위한 준비 및 작업의 연속 처리를 위한 스케줄링, 시스템의..