[ 사용자 ]
[ 응용프로그램 ]
[ 유틸리티 ]
[ 운영체제 ]
[ 하드웨어 ]
컴퓨터 시스템 5대 장치
1. 기억 장치
2. 제어 장치
3. 연산 장치
4. 입력 장치
5. 출력 장치
성능 평가 기준
1. 처리능력 ( Throughput ) -> 최대화
2. 신뢰도 ( Reliability ) -> 향상
3. 응답시간(반환시간) (Turnaround Time ) -> 최소화
4. 사용가능도 (Availability) ->증대
운영체제의 주요관리
1. 프로세스 관리 : 현재 실행중인 프로그램, 동기화 관리
2. 기억장치 관리 : 메모리 할당, 회수
3. 입출력 장치 관리 : 입출력 장치 스케줄링 관리
4. 파일 관리 : 파일 생성, 변경, 삭제, 유지 관리
운영체제의 구성
제어 프로그램 |
처리 프로그램 |
1. 감시프로그램 2. 작업 관리 프로그램 3. 자료 관리 프로그램 |
1. 언어 변역 프로그램 (컴파일러, 어셈블러, 인터프리터) 2. 서비스 프로그래 3. 문제처리 프로그램 |
운영체제의 구조
사용자1 사용자 2 . . . . .
[프로세스1] [프로세스2] . . . . .
| |
파일관리 계층 5
|
RAM
커널 (상주, 운영체제의 핵심) |
|
시스템 호출 : 사용자 프로세스가 운영체제에 도움 요청하는것
인터럽트 : 프로그램 실행 도중 예기치 않은 상황 발생, 이를 OS에 알리고 해결 하는것.
외부 : 전원 이상, 기계 착오, 외부 신호
내부 : 프로그램 검사, SVC (Supervisor call )
입출력 시스템 관리
1. 프로그램에 의한 입출력 : CPU가 다 해주는것
2. 인터럽트에 의한 입출력 : CPU가 다 해주지만, 플래그 검사를 하지않음
3. DMA ( Direct Memory Access ) : I/O가 주기억 장치를 접근(CPU 경유 X), 사이클 스틸 방식
4. 채널 : 입출력 전용 프로세서
운영체제의 운용 기법
1. 일괄 처리 시스템 ( Batch Processing System ) : 일정량 or 일정 기간 동안 입력된 데이터를 한번에 처리 [ 전화요금, 전기요금, 급여처리 ]
2. 실시간 처리 시스템 ( Real-Time Processing ) : 데이터 발생 or 처리요구 즉시 처리 [ 은행업무, 좌석 예약 ]
3. 시분할 시스템 ( Time-Sharing System ) : 컴퓨터시스템이 사용자들의 프로그램을 일정 시간만큼 번갈아가며 처리
[ CPU ] - A (5) 1. A(25)-B(5)-C(10) 3. C(10)-A(20) . . . . . .
- B (5) -5 -5
- C (5) 2. B(5)-C(10)-A(20) 4. C(5)-A(15)
(할당 시간) -5 -5
4. 다중 프로그램 시스템 (Multi Programming System ) : 하나의 CPU와 주기억 장치로 여러개의 프로그램 동시처리 [ CPU 사용률, 처리량 증가 ]
5. 다중 처리 시스템 (Multi Processing System ) : 여러개의 CPU, 주기억 장치로 여러개의 프로그램 동시처리, 단일 운영체제 사용
6. 다중 모드 시스템 (Multi Mode System ) : 일괄처리, 실시간 처리 시스템, 시분할, 다중처리 시스템을 한 시스템에서 모두 제공
7. 분산처리 시스템 (Distribute Processing System ) : 네트워크를 이용하여 여러개의 컴퓨터를연결 하여 하나의 작업을 처리
프로세스 : 현재 실행중 프로그램, 비동기적 행위
PCB (Process Control Block) : 프로세스 각각의정보를 담고 있음
프로세스 상태 전이 : 프로세스가 시스템에 존재하는 동안 프로세스 상태가 변하는 것
프로그램 제시 --> 보류(대기) --> 준비 완료 --(Dispatch)--> 실행---------------------> 완료
<-(Timer Run out)-- --(Block,보류)---> 대기
<------------(Wake-Up)-------------
PCB ( Process Control Block) : 프로세스가 생성될 때마다 고유의 PCB가 생성, 프로세스 수행 완료시 PCB 제거
1. 프로세스 현재 상태 ( 실행, 대기)
2. 고유 이름
3. 우선 순위
4. 프로세스가 적재된 기억장치의 주소를 가리키는 포인터
5. 할당된 자원을 가리키는 포인터
6. CPU의 각종 레지스터의 상태
프로세스 스케줄링 : 시스템의 여러 자원을 해당 프로세스에 할당하는 작업, CPU나 자원을 효율적으로 사용하기 위해 사용순서를 결정 하는 정책
1. 비선점 스케줄링 ( Non Preemptive ) : 할당된 프로세스를 다른 프로세스가 강제로 빼앗아 사용할 수 없음 [ FCFS, SJF, HRN, 기한부(Dead Line), 우선순위 ]
2. 선점 스케줄링 ( Preemptive ) : CPU를 강제로 빼앗아 사용할 수 있음, 많은 오버헤드 초래, 빠른 응답시간을 요구하는 시분할 시스템에서 사용
[ RR(Round Robin), SRT, 다단계 큐, 다단계 피드백 큐]
임계 구역 (Critical Section) : 다중 프로그래밍 환경에서 여러개의 프로세스가 하나의 데이터 영역을 공유하고 있을 때, 이 영역이 임계 구역임
임계구역에는 하나의 프로세스만 접근 가능, 프로세스가 자원을 반납해야 다른 프로세스가 자원 사용 가능
상호 배제 (Mutual Exclusion) : 임계 영역을 보호하기 위함. 둘 이상의 프로세스들이 공유 자원을 동시에 읽거나 쓰지 못하게 함 [ 데커 알고리즘(Dekker) ]
상호배제 문제해결 : 1. 모니터
2. 세마포
3. 임계 구역
동기화 ( Synchronization ) : 각 프로세스에 대한 처리 순서 결정
방법 : 1. 세마포
2. 모니터
교착 상태 : 둘 이상의 서로 다른 프로세스가 요구한 자원을 할당 받아 점유 하고 있으면서 상대방 프로세스가 가지고 있는 자원을 요구하는 경우
교착 상태 발생 필요충분 조건 4가지 ( 모두 충족되야 발생 )
1. 상호배제 조건
2. 점유와 대기조건
3. 비선점 조건
4. 환형 대기 조건
기억 장치 관리
단일 사용자 전용시스템 |
|
|
실 기억 장치 다중 프로그래밍 |
정 분할 다중 프로그래밍 |
절대 |
|
|
재배치 가능 |
|
가변 분할 다중 프로그래밍 |
|
가상 메모리 다중 프로그래밍 |
순수 페이징 |
|
|
순수 세그먼 테이션 |
|
|
페이징, 섹그먼테이션 |
|
기억장치 계층 구조
레지스터 ( CPU ) --> 캐시 메모리 --> 주기억장치 ( RAM ) --> 보조기억장치 ( HDD )
<-- <-- <--
관리 기법
1. 반입 기법 ( Fetch ) : 기억장치에 적재할 다음 프로그램이나 데이터를 언제 가져올것인가 결정하는 기법
요구반입 기법 : 실행 프로그램에 의해 데이터나 프로그램이 참조 된느것을 주 기억장치로 옮기는것
예상 반입 기법 : 앞으로 요구될 가능성이 큰 데이터 프로그램을 예상하여 주 기억 장치로 미리 옮기는것
2. 배치기법 : 새로 반입되는 데이터, 프로그램을 주 기억 장치의 어디에 위치시킬 것인가.
최초 적합 ( First - fit ) |
작업을 수용할 수 있는 첫뻔째 공간에 작업을 배치 단편화가 많이 발생하나 배치결정이 가장 빠름 |
최적 적합 ( Best - fit ) |
작업에 가장 적합한 공간에 작업을 배치 내부단편화를 최소로 하는 방법 |
최악 적합 ( Worst - fit ) |
가장 알맞지 않은 공간, 가장큰 공간에 배치 내부 단편화가 가장 크게 발생 |
3. 교체 기법 : 프로그램이나 데이터를 교체하는 기법
FIFO |
주기억 장치 내에서 가장 오래 있었던 페이지를 교체하는기법, 먼저 들어온것이 먼저 나감 |
LRU |
최근에 가장 오랫동안 사용하지 않은 페이지를 교체 |
LFU |
사용횟수가 가장 적은 페이지 교체 |
NUR |
가장 최근에 사용하지 않은 페이지를 교체, 최근 사용여부를 확이하기위해 각 페이지마다 참조비트와 변형 비트가 사용 |
OPT |
앞으로 가장 오랫동안 사용하지 않을 페이지 교체 |
기억장치 관리기법의 문제점
기억 장치 단편화
내부 단편화 |
분할된 영역에 프로그램을 할당 하고 남은 빈공간 |
외부 단편화 |
분할된 영역이 할당된 프로그램보다 크기가 작아서 프로그램을 할당 할수 없어 사용되지 않고 남아있는 빈공간 |
해결방법
단편화 해결방법 : 주기억장치를 재사용할 수 있도록 단편화된 공간을 모아서 하나의 사용할 수있는공간으로 만드는 기법
통합 ( Coalescing ) |
인접된 빈 공간을 하나로 합쳐서 큰 기억공간을 만드는것 |
압축 (Compaction ) |
주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 큰 공간을 만드는 기법 |
가상 기억장치 관리기법 : 가상 기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로바꾸는 주소변환이 필요.
페이징 |
주소공간을 페이지 단위로 나누고, 실제 주소공간은 페이지 크기와 같은 페이지 프레임으로 나누어 사용하는 것이다. |
세그먼테이션 |
일반적으로 사용자가 작성하여 실행하는 프로그램은 서브루틴과 함수, 프로시져 또는 모듈의 집합으로 구성 각종 테이블, 행렬 또는스택등과 같은 여러가지 형태의 자료구조들이 있다. 이때 이러한 논리적 단위가 되는 프로그램 모듈이나 자료구조 등을 세그먼트라한다. |
운영체제의 주요구성 기술 ( 시스템보안 3강 24:50/39:34 )
파일 시스템의 기능
1. 사용자가 파일을 생성(create), 수정(modify), 삭제(delete)할 수 있도록 한다.
2. 계층적 트리구조로 각 디렉토리는 커널에 의해 관리한다.
3. 파일공유를 위하여 읽기접근, 쓰기접근, 실행접근 또는 이들을 적당히 조합한 것 등 여러가지 제어 방법을 제공한다.
4. 다른 사용자 파일을 공동으로 사용할 수 있도록 적절한 제어 방법을 제공한다.
5. 불의의 사고에 대비한 백업과 복구 능력을 갖추어야 한다.
6. 정보가 안전하게 보호되고 비밀이 보장될 수있도록 파일 시스템은 정보의 암호화(encryption)와 복호화(decryption)를 할 수 있는 능력을 가져야 한다.
7. 파일으 ㅣ무결성과 보안을 유지할 수 있는 방안을 제공한다.
8. 주기억장치와 보조기억장치 간의 파일 전송을 담당한다.
디스크 스케줄링 : 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우 데이터를 엑세스 하기 이해 디스크 헤드가 움직이는 경로를 결정하는 기법
FCFS |
먼저 들어온 요청이 우선순위와 관계없이 먼저 서비스를 받음 |
SSTF |
서비스를 받는 시점에서 이동 헤드가 어느 방향으로 이동하는지에 관계없이 마지막 요구에 가장 가까운 것이 서비스를 받음 |
SCAN |
검사하는 방향의 요구가 미리 정해진 방향으로 이동하는것을 제외하고는 SSTF와 같다 |
C-SCAN |
중간 부분의 트랙이 보다 많은 서비스를 받게 되는 SCAN의 단점을 극복하기 위하여 이동 헤드를 한 방향으로만 이동한다. |
분산처리 시스템 : 데이터 처리 장치 및 데이터베이스가 지역적으로 분산되어 있으면서 정보 교환을 위하여 네트워크로 상호 결합된 시스템
각 호스트에서 고유한 운영체제가 있는 것이 아니라 전체 네트워크에 공통적으로 단일 운영체제가 실행되는 시스템
특징 : 사용자에게 할당할 수 잇는 일반적 용도의 자원은 각 노드에 분산되거나 중복되어있다.
분산된 노드들은 네트워크를 이용하여 메시지를 주고 받으며 정보를 교환한다.
시스템을 구성하는 노드들은 가기 어느 정도의 자율성을 가진다.
목적
1. 자원의 증대성 : 각 시스템이 통신망을 통해 연결되어 있으므로 유용한 자원을 공유하여 사용한다.
2. 연산속도의 향상 : 하나의 일을 여러 시스템에 분산하여 처리하기 때문에 연산 속도가 향상된다.
3. 신뢰성 향상 : 하나의 시스템에 오류가 발생하더라도 다른 시스템은 계속 작업을 수행할 수 있기 때문에 신뢰도가 향상된다.
4. 컴퓨터 통신 : 지리적으로 떨어진 시스템에 통신망을 두어 정보를 교환 할 수 있다.
https://www.youtube.com/watch?v=-cOwjJgxDts