제3과목 - 운영체제
1) 운영체제의 개요
제어 프로그램
감시 프로그램
작업 제어 프로그램
자료 관리 프로그램
데이터(자료) 관리 프로그램
자료 전송, 파일 조작 및 처리, 입/출력 논리적 연결 등
컴파일러 언어, 어셈블리 언어로 작성된 프로그램 지칭은?
Source program (원시 프로그램)
어셈블러를 두 개의 패스로 구성하는 주된 이유는?
두 개의 pass로 구성하면, 기호를 정의하기 전에 사용 가능
즉, pass 한 개만 사용하면 기호를 모두 정의한 뒤에 사용 가능
인터프리터와 컴파일러의 차이점
목적 프로그램의 생산
인터프리터 : 한 줄 단위로 번역 즉시 실행
컴파일러 : 원시프로그램 번역해 기계어로 목적 프로그램 생산
보조기억장치에서 주기억장치로 올려놓는 기능
로더(Loader)
로더의 기능
재배치
할당
연결
적재
절대 로더
절대 로더는 적재 기능만 수행
할당 및 연결 - 프로그래머가 수행
재배치 - 언어 번역 프로그램이 수행
운영체제란?
소프트웨어 장치
하드웨어를 효율적으로 사용하도록 만들어 줌
인터페이스 제공
효율적인 스케줄링
자원 공유
운영체제 성능 평가 기준
처리 능력
반환 시간
신뢰도
사용 가능도
각 사용자가 각자 독립된 컴퓨터를 사용하는 느낌을 주는 시스템은?
시분할 시스템
한정된 시간 제약조건 운영체제
실시간 시스템
운영체제 발달과정 순서
일괄 > 시분할 > 다중 모드 > 분산
동시에 프로그램을 수행할 수 있는 CPU 두개 이상을 두고 업부 분담 처리 시스템
다중 처리 시스템
(다중 프로그래밍은 1개의 cpu로 여러 프로그램)
2) 프로세스 관리
프로세스란?
실행 중인 프로그램
프로시저의 활동
운영체제 관리 실행 단위
비동기적 행위
프로세스 제어블록(PCB)
부모 자식 서로 고유 PCB 갖고있음
프로세스 할당 자원 정보 갖고있음
프로세스 현 상태 알수있음
PCB가 갖고 있는 정보
프로세스 상태
프로그램 카운터(PC)
처리기 레지스터
할당된 자원 정보
CPU 할당 시간을 다 사용한 후 어떤 상태로 전이하는가?
READY
스레드
경량 프로세스
병행성, 다중
독립
효율적 통신
처리율 향상
스케줄링 목적
공평성 유지
처리량 최대화
응답 시간 최소화
오버헤드 최소화
스케줄링 성능 평가 기준
CPU 이용률
처리량
반환시간, 대기시간, 응답시간
균형 있는 자원 이용
선점 스케줄링 방식
시분할 시스템 적합
높은 우선순위 프로세스 우선처리
인터럽트용 타이머 클록 필요
강제적 빼앗기 가능(높은 우선수위 프로세스 들어오면)
종류 : SRT, RR, 다단계 큐
비선점 스케줄링 방식
일괄처리 시스템 적합
강제적 빼앗기 불가능
공정한 처리
종류 : FCFS, SJF, HRN
문맥 교환(context switching)
실행되고 있는 프로세스 상태 정보 저장, 앞으로 실행될 상태 정보 설정
SJF
비선점 스케줄링 기법
큐 대기 프로세스 중에 실행 시간 가장 짧은 프로세스 먼저 할당
평균 대기시간 최소화
우선 도착시간 0인 작업 시행하고, 그 이후 프로세스 중 실행시간이 짧은 순부터 진행
HRN
(대기시간 + 서비스시간) / 서비스 시간
에이징 기법
기다린 시간에 비례하는 높은 우선순위 부여하는 기법
SJF 방법의 단점 보완 개발 - 대기시간에 따라 결정되는 스케줄링 방식은?
HRN
FCFS 스케줄링
대기시간 긴게 가장 먼저 나옴 (큐 방식)
- 가장 먼저 실행되는 작업을 구하는 문제는 대기시간 가장 긴거 고르기
세마포어
Dijkstra의 제안 방법
상호배제 (여러 개 프로세스가 동시에 그 값을 수정 못함)
즉, 연산 처리 중에 인터럽트 불가능
모니터
상호 배제 시행
자료 추상화, 정보 은폐 기법 기초
병행성 구조
모니터 외부 프로세스는 내부 접근 ‘불가능’
임계 구역
특정 프로세스가 독점 불가능
하나의 프로세스만 접근 가능
임계 구역 작업은 신속하게 진행되어야 함
Working set
실행 중인 프로세스가 일정 시간 동안 참조하는 페이지 집합
스래싱을 방지하는 방법
교착 상태 (Deadlock)
두 개 이상 프로세스들이 자원을 점유한 상태에 서로 요구하며 ‘무한정 기다리는 현상’
교착 상태 발생조건
- 상호배제
- 점유와 대기
- 비선점
- 환형 대기
(상호 종속이나 선점으로 헷갈리게 문제가 나옴)
교착 상태 해결 방법
- 예방 : 교착상태 가능성 미리 배제 (발생조건 모두 막아야함)
- 회피 : 배제하지 않고 적절히 피하기(은행원 알고리즘)
- 발견 : 교착 허용하는 대신, 교착 상태 자원을 검사하는 방법
- 회복 : 교착상태 프로세스 종료하고, 할당 자원 회수해서 회복
점유 및 대기 조건
프로세스 진행되기 전에 모든 자원을 할당해 대기를 없애는 것
한꺼번에 자기에게 필요한 자원을 모두 요구(점유)
은행가 알고리즘이 속하는 분야는?
교착 상태의 ‘회피’
RR 스케줄링
작업 할당시간이 문제에 주어짐
제출시간 순서대로 (실행시간-할당시간) 해주며 진행
각 작업마다 반환시간은 마지막 실행시간이 끝난 시점
SJF 스케줄링
평균 반환 시간 구하는 문제
반환 시간 = 버스트 시간 + 대기 시간
버스트 시간이 가장 짧은 순으로 진행하고,
버스트 시간만큼 다음 작업에 대기 시간으로 더해줌(누적 형태)
HRN 스케줄링
우선순위 가장 높은 작업 구하는 문제
HRN 스케줄링은 (대기시간 + 서비스 시간) / 서비스 시간 이었음
이대로 구해주고 가장 큰 수가 우선순위 가장 높음
3) 기억장치 관리
반입(fetch) 전략 - when
프로그램/데이터를 주기억장치로 가져오는 시기 결정
배치(placement) 전략 - where
프로그램/데이터의 주기억장치 내 위치 결정
교체(replacement) 전략 - who
빈 공간 확보 위해 제거할 프로그램/데이터 선택 결정
배치 전략 종류
- 최초 적합
- 최적 적합
- 최악 적합
10k 프로그램을 할당할 때 영역 9k-15k-10k-30k의 배치 전략
15k - 최초 적합 (첫 9k는 작기 때문에 10k 할당가능한 크기로 넘어감)
10k - 최적 적합
30k - 최악 적합 (가장 낭비되는 곳)
오버레이
작업의 크기가 더 커서 기억 공간에 수용할 수 없을 때, 모든 부분을 주기억장치에 있을 필요가 없으므로 작업을 분할해 필요한 부분만 교체하는 방법
내부단편화와 외부단편화
- 내부단편화 : 분할된 영역이 작업 크기보다 커서 남는 빈 공간
- 외부단편화 : 분할된 영역이 작업 크기보다 작아서 사용하지 못하는 것
메모리 관리 기법
- 압축(Compaction) : 서로 떨어져 있는 낭비 공간 모으는 것
- 통합(Coalescing) : 인접한 공백을 모으는 것
가상 기억 장치
용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
세그먼테이션 기법
논리적 단위로 나눈 후 (크기 가변적) 주기억장치에 적재 및 실행
기억장치 보호 키 필요
페이징 기법
크기를 동일하게 나눈 후 주기억장치에 적재 및 실행
페이지 사상표를 보관할 장소 필요
매핑(mapping)
가상기억장치에서 주기억장치로 페이지를 옮겨 놓을 때 ‘주소를 조정’하는 것
페이지 부재(page fault)
참조할 페이지가 주기억장치에 없는 현상
LRU
가장 오랫동안 사용되지 않았던 페이지를 먼저 대체하는 기법
NUR
최근에 사용하지 않은 페이지를 먼저 교체하는 기법 (참조 비트, 변형 비트 필요)
페이지 프레임 주고 페이지 부재 수 구하는 문제
FIFO나 LRU 방법 나올 가능성 높음
FIFO는 그냥 가장 먼저 넣은 페이지를 먼저 교체해주면 되고
LRU는 넣은 페이지 중에 가장 오래 사용하지 않은 페이지를 교체하면 됨
구역성(Locality)
일정 부분만을 집중적으로 참조하는 것
구역성 종류
시간적 구역성
최근 참조된 기억장소가 계속 참조될 가능성 높음 종류 : 루프, 서브루틴, 스택, 집계
공간 구역성
하나의 기억장소가 계속 참조될 가능성 높음
종류 : 배열, 순차 수행
스래싱
페이지 부재 발생으로 프로세스가 수행시간 보다 페이지 교체 소비 시간이 더 많은 현상
디스크 대기 큐 이동
10, 40, 55, 35 순서일 때 FCFS 스케줄링 기법으로 헤드 이용 구하기
(현 헤드 위치 50)
FCFS는 가장 먼저 들어온 대기 큐 부터 시작
따라서 순서 그대로 사용 (50 > 10 > 40 > 55 > 35)
40+30+15+20 = 105
헤드 총 이동거리 구하는 문제
문제 시작부분에 트랙이 0번으로 향하는지 200으로 향하는 지 확인 우선
(트랙이 0번으로 가는 기준으로)
SSTF : 탐색거리 가장 짧은 순서부터 시작 (200까지가면 0으로 마지막 가기)
SCAN : 끝까지 이동 후, 반대 방향 서비스 시행 (0까지 가고 반대 가기)
C-SCAN : 항상 바깥쪽으로 이동 (0까지 가고 200부터 작은곳까지 가기)
N-step SCAN
진행 도중 도착한 요청들은 모아서 반대 방향 시 서비스하는 것
Sector Queuing
회전 지연시간을 최적화하기 위한 스케줄링 기법
4) 정보 관리
파일 시스템 기능
파일 생성, 변경, 제거
접근 제어 방법 제공
정보 손실 파괴 방지
‘논리적’ 구조 제공
장치 독립성
복구 능력 및 암호 해독 능력
파일 디스크립터 내용
보조기억장치 유형
파일 구조
접근 제어 정보
파일 크기
파일 ID
디스크 내 주소
순차 파일
자기 테이프
파일 구성이 용이함
불필요한 공간 낭비 없음
일괄 처리에 적합
모든 레코드를 순차로 검색하기 때문에 검색 효율이 낮음
직접 파일
자기 디스크
물리적 주소를 통해 직접 접근
해싱 등 사상 함수 사용
색인 순차 파일
순차 + 직접 파일
구성 : 트랙, 실린더, 마스터
디렉토리 구조
1단계 구조 : ‘가장 간단한’
2단계 구조 : 마스터 파일과 사용자 파일 디렉토리 구성
트리 구조 : 루트와 종속 구성
비주기 디렉토리 : 공용 허용, 떨어진 포인터 문제 발생
그래프형 디렉토리 : 사이클 허용, 참조 카운터
자원 보호 기법
접근 제어 행렬
접근 제어 리스트
권한 리스트
(권한 행렬은 해당 X, 이거로 문제 나옴)
접근 제어
사용자의 신원에 따라 서로 다른 접근 권한 허용
보안
- 외부 보안 : 불법 침입자나 천재지변으로부터 보호
- 내부 보안 : 내장된 보안 기능으로 보호
- 사용자 인터페이스 보안 : 운영체제를 통해 보호
암호화 기법
- 공개키 : 암호와 해독이 다른 키 (RSA)
- 비밀키 : 암호와 해독이 동일한 키 (DES) - 비밀성 유지
인증(Authentication)
패스워드, 인증용 카드, 지문 검사
5) 분산 운영체제
공유 버스 기법
단일 버스로 연결한 구조, 단순함
주/종 처리기 시스템
주프로세서 : 운영체제, 입출력과 연산작업 수행
종프로세서 : 연산만 담당 (입출력 발생시 주프로세서에 요청)
주프로세서 문제시 프로그램 멈춤
약결합 시스템
독자적 운영체제
독립된 메모리 가짐
메시지 전달, 원격 프로시저 호출
강결합 시스템
공유 메모리 운영
하나의 저장장치 공유
프로세스간 경쟁 최소화
분산 처리 시스템의 장점
자원 공유도 향상
처리율 향상
신뢰성 향상
(보안성 문제가 단점)
투명성
위치 투명성 - 물리적 위치 알 필요 없음
이주 투명성 - 응용 프로그램 영향 받지 않고 정보 객체 이동
복제 투명성 - 자원의 복사 자유로움
병행 투명성 - 자원들을 자동으로 공유
점진적인 확장
병목 현상 제거 위해 필요한 자원 추가
스타(성) 형
하나의 중앙 노드에 직접 연결
중앙 노드 고장 시 모든 통신 단절
링 형
전달방향이 단방향과 양방향
각 사이트는 다른 두 사이트와 물리적 연결
6) 운영체제의 실제
UNIX 운영체제 특징 - 다중임을 기억하자
높은 이식성
계층적 파일 시스템
네트워크 시스템
다중 사용자 시스템
커널
UNIX 시스템의 핵심적인 부분
기능 : 입출력, 기억장치, 프로세스 관리
쉘
명령어 해석기로, 사용자 명령어를 인식하여 필요한 프로그램 호출 및 수행
시스템과 사용자 간 인터페이스 담당
UNIX 파일 시스템 특징
트리 구조
파일 보호
주변 장치를 파일과 동일 취급
UNIX 파일 시스템 구조
부트 블록
슈퍼 블록
I-node 블록 : 최종 수정 시간, 파일 링크 수를 기록
데이터 블록
fork
프로세스 생성하는 시스템 호출
chmod
파일의 접근을 제한, 권한을 주는 것
mount
새로운 파일 시스템을 서브 디렉토리에 연결
cat
파일 내용을 화면에 출력
DOS와 유닉스 명령어 유사한 것
DIR - ls
COPY - cp
TYPE - cat
'정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 요약 정리본 (0) | 2018.06.30 |
---|---|
정보처리기사 필기 오답노트 (0) | 2018.04.19 |
[정보처리기사 필기] 2과목 전자계산기구조 (0) | 2018.04.14 |
[정보처리기사 필기] 1과목 데이터베이스 (0) | 2018.04.09 |