[정보처리기사_필기] 운영체제 <2>
- Information Logs/IT Notes
- 2014. 1. 8. 02:30
스케줄링
✔ 운영체제가 순서와 시간을 배정
✔ 프로세스 스케줄러
- 대기단계에서 실행단계로 프로세스를 옮김
✔ 비선점형 스케줄링 : 강력한 제어권 부재
- FIFO (First in First out) : 질서구조(Queue), 대화형 시스템에 부적합
- SJF (Shortest Job First) : 짧은 프로세스 우선, 예상시간보다 처리시간이 길어질때 문제가 발생한다.
가장 적은 평균 대기 시간,실행시간이 긴 프로세스는 무한 연기
- HRN (Highest Respons-ratio next) : SJF의 단점(무한대기)보완 -> Aging 기법 사용
우선순위 = (대기시간 + 실행시간) / 실행시간
- 기한부(Deadline) : 제한시간후 프로세스 종료여부에 관계 없이 소멸
- 우선순위(Priority) : 에이징 기법에 사용되는 우선순위부여 방법
✔ 선점형 스케줄링 : 대화식 시분할 시스템에 사용
- SRT(Shortest Remain Time) : SJF를 선점형으로 바꿈
- RR(Round Robin) : FIFO을 선점형으로 바꿈, 할당시간(Time Slice)적용
할당시간 종료후 다시 대기상태로 돌아감
할당되는 시간이 클 경우 FIFO와 같아짐
할당되는 시간이 작을 경우 문맥교환이 잦아짐
- MLQ(Multi level Queue) : 대기 프로세스를 중요도별로 그룹지어서 처리
시스템 프로세스 -> 대화형 프로세스 -> 일괄처리 프로세스
- MFQ(Multi level Feedback Queue) : 할당시간 종료후 하위큐로 순서가 밀림
상위큐에서는 FIFO, 하위큐에서는 RR로 작동
✔ 스케줄링의 목적
- 처리율 증가, CPU이용률 증가, 오버헤드 최소화, 시간 최소화
주 기억장치
✔ 반입전략(Fetch) : 언제 주기억장치로 옮길것인가
- 요구반입 / 예상반입
✔ 배치전략(Placement) : 주기억장치 어디로 옮길 것인가.
- First fit (최초 적합) : 적재 가능한 첫 번째 공간에 배치
- Best fit (최적 적합) : 단편화(낭비되는 공간)가 적은 공간에 배치
내부단편화 : 저장후 남는 공간
외부단편화 : 저장할 수 없어 스킵된 공간
- Worst fit (최악 적합) : 가장 큰공간에 배치, 빠르고 간단
✔ 교체전략(Replace) : 무엇을 가상메모리로 떨어트릴 것인가.
✔ 주기억장치 할당 기법
- 좁은 기억장치 공간을 최적으로 활용하는 기법
- 오버레이기법(프로그램의 필요한부분만 스테이징) -> 스와핑 기법(필요프로그램 전체) -> 가상메모리 기법(오버레이 + 스와핑)
✔ 단편화 해결방법
- 통합기법(Coalescing)기법 : 인접된 공간을 합쳐서 넓은 공간 확보
- 압축기법(Compaction)기법 : 떨어져 있는 낭비 공간을 모음(Garbage Collection)
가상 기억장치
✔ 보조기억장치를 주기억장치처럼 사용
✔ 스와핑처럼 프로그램을 올렸다가 내렸다를 하지만, 블록단위로 나누어서 수행
✔ 페이징
- 가상기억장치에 분할된 공간 = 페이징
- 주기억장치에 분할된 공간 = 블록
- 외부단편화는 발생하지 않으나 내부단편화는 발생
- 시간효율이 좋다
✔ 세그멘테이션
- 내부단편화는 생기지 않지만 마지막에 외부단편화가 1회 발생한다.
- 공간 효율이 좋다
✔ 페이지 교체 알고리즘
- 페이지 부재 수(요청된 프로세스가 주기억장치에 없을 경우 카운트됨)
- OPT기법 : 가장 오래 사용하지 않을 페이지 교체 -> 실현 불가
- FIFO기법 : 가장 오래된 페이지 교체
- LRU(recently)기법 : 마지막 사용 시간, 오래 사용하지 않은 페이지 교체
- LFU(Frequency)기법 : 사용 회수 적은것 교체
- NUR(Not Used Recently) : LRU, LFU 의 단점 보완
참조비트와 변형비트를 두어서 교체 우선 순위 부여
✔ 페이지 크기
- 작을 경우 : 외부단편화 발생, 이동시간 증가, 디스크 접근 횟수 증가
- 클 경우 : 내부단편화 발생, 이동시간 감소, 디스크 접근 횟수 감소
✔ 구역성(Locality)
- CPU는 일정시간에 일정 구역을 호출
- 시간 구역성 : 시간예측이 가능 반복문(for문, Stack, Subroutine)
- 공간 구역성 : 배열, 순차적 코드 실행
✔ 워킹셋(Working Set)
- 자주 참조되는 페이지의 집합
✔ 스래싱(Threshing)
- 프로그램 교체 시간이 늘어나면서 어느순간 CPU효율이 급 하락
디스크 스케줄링
✔ 디스크 스케줄링 기법
- FIFO
- SSTF (Shortest Seek Time First) :가까운 거리 트랙부터 차례대로 Seek
일괄처리에는 적합, 응답시간은 길어짐.
- SCAN (엘레베이터 기법) :0번 방향으로 가까운 거리 트랙부터 차례로 수행 후 0번 도착하면 역방향 진행
- C-SCAN :0번 방향으로 가까운 거리 0번까지 수행후 가장 먼곳에서 다시 0번 방향으로 진행
- LOOK (C-LOOK) :SCAN(C-SCAN)보완 : 0번까지 안가고 0에 가까운 마지막 트랙에서 방향 바꿈
파일 시스템
✔ 파일
- 보조기억장치에 저장된 상태
✔ 파일 시스템 (ex : 윈도우 탐색기)
- 사용자와 보조기억장치 사이에 인터페이스 제공
✔ 파일 디스크립터(= 파일제어블록 FCB)
- PCB와 같은 역할
- 이름, 위치, 구조, 보조기억장치 유형, 시간정보, 엑세스 횟수 등이 저장되어 있다.
✔ 파일구조
- 순차파일 : 저장효율은 높지만 접근 속도 느리다. (자기테이프)
파일 수정 삭제에 시간이 많이 걸린다.
- 직접파일 : 직접접근방식
해싱함수를 이용하여 주소계산
저장효율은 낮지만 접근 속도 빠르다.
- 색인순차파일(Indexed Sequential File)
➤ Prime 영역(기존 DATA)
➤ Index 영역(색인정보) - 트랙 색인(소), 실린더 색인(중), 마스터 색인(대)
➤ Overflow 영역(추가되는 DATA)
➤ 추가적인 기억공간 필요, 색인에 들러야 하므로 접근시간 증가
자원보호
✔ 접근 제어 행렬
- 각각의 자원에 대한 접근 권한의 정도를 행렬로 표현
✔ 파일 보호 기법
- 파일명명
- 비밀번호 : 개인정보와 연관되지 않은것, 주기적 변경
- 접근제어
보안
✔ 인증 : Login
✔ 부인방지 : 로그(증거)를 남김
✔ 보안유지기법
- 외부보안 : 물리적보안
- 내부보안 : 운영체제나 하드웨어의 암호
- 사용자 인터페이스 보안 : 데이터 접근의 암호
✔ 정보 보안 기법
- 비밀키(대칭형) : 암호생성 방법 = 암호해독 방법
- 공개키(비대칭형) : 암호생성 방법 ≠ 암호해독 방법 (암호 생성방법 공개가능)
다중 처리기
✔ 여러개의 CPU가 하나의 작업을 나누어 수행
✔ 프로세서 연결방식
- 공유 버스
✔ 운영체제 구조
- 주/종 처리기 (하나의 Master프로세서와 여러개의 Slave프로세서)
- 주프로세서 : 입출력, 운영체제
- 종프로세서 : 연산만 담당
✔ 프로세서의 결합도
- 약결합 시스템(Loosely Couples System) : 각각 독자적 메모리,O/S 사용
메시지를 통해 정보 공유
- 강결합 시스템(Tightly Couples System) : 메모리 공유, O/S 공유
메모리를 통해 정보 공유
✔ Flynn의 분류
- SISD
- SIMD
- MISD : 거의 사용 X
- MIMD
분산 시스템
✔ 자원공유, 연산속도 향상, 신뢰도 향상, 보안이 약해지고, 설계가 복잡
✔ 투명성
- 위치 투명성 : 자원의 위치를 몰라도 접근 가능
- 이주 투명성 : 상대의 OS를 몰라도 접근 가능
- 복제 투명성
- 병행 투명성
✔ 분류
- 클라이언트/서버 모델 (분산 처리)
- 망형 (완전 연결형)(Mesh형) :각 컴퓨터가 서로 직접 연결 -> 성능 최적화
설치 비용이 비쌈.
- 트리형 (계층형)
- 성형 (중앙집중형) : 모든 컴퓨터가 중앙 컴퓨터와 직접 연결
중앙 컴퓨터 오류시 전체 시스템 마비
- 링형 (환형) :인접한 컴퓨터가 서로 연결
하나가 오류나면 일부 네트워크 오류
통신 비용이 증가, 노드 추가가 어렵다.
- 다중접근 버스형 :하나의 버스에 각각의 컴퓨터들이 연결
✔ 데이터 이주 : 데이터를 옮겨와서 연산
✔ 연산 이주 : 데이터를 고정해놓고 연산수행
운영체제
✔ UNIX 개요
- 대부분 C언어로 작성 -> 이식성과 확장성이 높음
- 멀티유저(서버 O/S를 공유), 멀티태스킹(여러 작업을 동시 수행)
- CUI 이다
✔ UNIX 구성
- Shell : 명령 해독
- Kernel(엔진) : 핵심적인 부분
입출력관리, 파일관리, Process관리, Memory관리
하드웨어와 프로그램간 인터페이스 역할
- 사용자 -명령-> Shell -해독-> 커널 -처리-> HDD
✔ UNIX 파일 시스템
- 계층형 파일 시스템
✔ UNIX 구조
- 부트블록 : 부팅관련 정보
- 슈퍼블록 : 전체 시스템 정보
- I-node(=FBC) : 저장된파일이나 디렉토리에 대한 모든 정보
✔ UNIX 파일시스템 보호
- 사용자 구분 : 파일 소유자, 그룹, 기타 사용자
- 접근 허가 방식 : 파일이름-rwxr--r--
d 'or' - rwx rw- r--
D:Directory 오너권한 그룹권한 기타권한
-: File
✔ UNIX 명령어
- Fork : 새로운 프로세스 생성, 복제
- Exec : 새로운 프로세스 수행
- Chmod (change mode) : 접근권한을 수정
r = 4 / w =2 / x =1
7 = RWX 가능 / 6 = RW- 가능 / 5 = R-X 가능 / 3 = -WX 가능
- Ls : 현재 디렉토리의 파일 목록
- Cat : 파일의 내용을 화면에 출력
✔ 윈도우 및 MS-DOS
- Command.com = Shell
- Msdos.sys + IO.sys = 커널