2016. 8. 12. 15:03ㆍ자격증 공부/정보처리기사
[1] OS
1. 계층 구조
사용자
응용P
유틸리티
Shell(명령 해석기)
커널(제어 P): HW 제어(스케쥴링)
기계어
Micro P(=펌웨어:ROM에 영구 기억)
HW
2. 시스템 SW
1) 어셈블러 번역 방법
ㄱ. 단일 PASS: 정확한 기호 번지 사용해야
ㄴ. 이중 PASS: 기호 번지 미리 정의 X, 번역 속도 느림
2) 매크로 프로세서 기능
ㄱ. 정의 인식/저장
ㄴ. 호출 인식/매크로 확장
3) 로더 기능: P 실행 위해 P를 보조에서 주 기억 장치로 옮겨놓음
ㄱ. Allocation(할당): RAM 확보
ㄴ. Linking(연결): RAM-논리적 주소 공간으로 연결
ㄷ. Relocation(재배치): RAM 안에서 위치 변경
ㄹ. Loading(적재): RAM에 필요한 부분만 적재
4) 로더 종류
ㄱ. Compile and Go: 컴파일러에 로더 합친 것/단순해서 프로그래밍하기 좋음
ㄴ. 절대 로더: RAM 할당&연결을 프로그래머가 지정/복잡하고 RAM 위치 변경이 힘듬
ㄷ. Direct Linking: 로더가 다 해 줌(4가지 기능) > 가장 일반적
ㄹ. Module은 적재만/Binding 적재 뺀 나머지
ㅁ. Dynamic Loading: 사용 중 P을 RAM에 적재/ 미사용 중 P을 보조 기억장치에 적재
3. OS 시스템 종류
1) 다중 프로그래밍: 여러 P가 동일 메모리 번갈아 사용 -> 처리량 극대화
2) 시분할 처리(=Round Robin): 여러 사용자가 동일 시스템 -> 응답시간 최소화
4. OS의 성능 평가 기준
1) Throughput(처리량): 시간 당 작업량
2) Turn-around Time(반환 시간): 작업 완료까지 걸린 시간(실행+대기 T)
3) Reliability(신뢰도): against 에러
4) Availability(사용 가능도): 자원 신속, 충분하게 지원해줄 수 있는가
5. OS 발달 과정
일괄 > 시분할 > 다중 mode > 분산 처리
[2] 프로세스 관리
1. 프로세스
ㄱ. RAM 내 P가 CPU에 의해 처리되는 상태
ㄴ. Dispatch(P를 CPU에 할당 받아 실행되는) 가능
ㄷ. 비동기적 행위(여러 P 찔끔찔끔 돌려가며 실행) 일으키는 주체
*Spool: P와 I/O 장치 사이 속도차이 극복케(Buffer로 하드디스크 사용)
Buffering: CPU와 I/O 장치 사이(RAM 이용) ex) 유튜브: 미리 필요한 데이터 읽어둠으로써
2. 인터럽트 처리
1) Context Switching(문맥 교환): 인터럽트 발생 수와 비례(오버헤드 UP)
3. PCB(Process Control Block)의 항목
1) 식별자: 구분 위한 명칭
2) PC(프로그램 카운터): 다음 실행 명령어 주소 기억
3) 포인터(프로세스 OR 할당 자원의 시작 번지 기억)
4) CPU 레지스터
4. CPU 스케쥴링
1) 프로세스 스케쥴링 알고리즘 비교
비선점 |
선점(Pre-emptive):개밥그릇 뺏기 |
일단 cpu 할당시 권한 못 뺏음 |
|
일괄 처리 방식 적합 |
대화형/실시간 적합 |
문맥 교환 적음 |
많음 |
응답시간 예측 어려움 |
쉬움 |
2) 비선점형 방식: 요구 시간 예측 어려움(길어지는 경우 많으므로)
FIFO |
SJF (Shortest Job First) |
HRN(Highest Response-ratio Next) |
구현 간단 |
한국 아줌마식 |
실행 대비 대기 시간 큰 놈 우대 |
반환 시간 길다 |
긴 작업 무한 연기 될 수도 |
우선순위 = 1+ 대기/서비스 시간 |
|
*에이징 기법(장유유서:오래 기다린 놈 우대)로 해결 |
|
3) 선점형 방식: 시분할에 적합
Round Robin: 찔끔찔끔-전형적 2인자 방식 |
SRT(Shortest Remaining Time) |
할당된 시간(Time slice)만큼씩만 사용 |
남은 실행 추정치 작은 것부터 |
작을 수록 오버헤드 up |
더 작은 게 있으면 중간 중간 양보 |
너무 크면 FIFO처럼 됨 |
실행 시간 계산해야 돼서 오버헤드 UP |
|
*임계치(Threshold Value) 보다는 커야 스위칭 |
|
잦은 스위칭 예방 위한 것임 |
5. 병행 프로세스와 교착 상태
1) 임계구역(Critical Section)
하나의 프로세스만 자원 이용할 수 있게 지정된 영역(=상호 배제)
*모니터: 프로세스 자원 점유 순서 제어(교통순경처럼)
2) 교착상태(Dead-Lock)
A -> B -> A 방식에서, A와 B 서로가 서로를 기다리는 상태
ex) 오지 않는 서로를 기다리는 커플
*교착상태 발생 필수 4요소
1) 상호배제
2) 점유&대기(Hold&Wait)
3) 비선점
4) 순환대기
*회피 위해서는? 은행원의 알고리즘 이용
[3] 기억 장치 관리
1. 단편화(Fragmentation)
내부-공간 남는 것
외부-너무 큰 것
2. 가상 기억 장치 사용 방식
1) 고정 분할(Paging)
분할 크기 고정(안 넘치도록) > 내부 단편화만 발생
Paging 크기 작을 수록 -> 내부 단편화 작음(모래로 꽉꽉 채우기), 효율이 높다
클 수록 -> 관리하기 용이(모래는 잘 날아감)
2) 가변 분할(Segment)
외부 단편화만 발생
3. 주요 기술
1) Thrashing: 지나친 Page Fault로 인해 성능 떨어지는 것
*방지법 3
ㄱ. 다중 P 줄인다
ㄴ. CPU 이용률 높인다
ㄷ. 자주 사용 페이지(Working Set) RAM에 갖다 두기
2) 구역성(Locality)
특정 부분 집중 참조
*통합(Colaescing): 인접 공간 합치기
집약(Compaction): 떨어진
4. 기억 장치 관리 전략
1) 반입(Fetch)
2) 배치(Place)
3) 교체(Replace)
<배치 전략 비교>
최초 적합(First Fit) |
최적(Best) |
최악(Worst |
첫번째에 |
크기 제일 비슷 |
가장 안 맞는 공백에 |
초기 결정력 빠름 |
느림 |
|
내부 단편화 큼 |
작음 |
|
<교체 전략 비교>
FIFO |
LRU(Least Recently Used) |
NUR(Not Used Recently) |
가장 간단 |
참조된지 오래된 것 |
사용된지 오래된 것 |
Page Fault 다발 |
|
비트값 1 > 최근 비트값 2 > 오래된 |
5. 디스크 스케줄링
FCFS(First Come First Served) =FIFO |
SSTF(Shorted Seek Time) |
SCAN |
C-SCAN |
온 순서대로(모범시민) |
가장 가까운 순 |
가까운 순이지만 가던 방향으로 끝까지 |
무조건 바깥에서 안쪽으로(Crazy) |
부하 적을 때 유리 |
일괄처리 유리(편차 큼) |
부하 적을 때 최고 |
부하 많을 때 최고 |
꼬불꼬불 |
(편차 큼)기아 상태 발생 |
0까지는 안 감 |
편차 작음 |
꽈배기 |
지팡이 |
화살표 |
Z 모양 |
[4] 정보 관리
1. 파일 시스템
1) 파일의 구조
ㄱ. Direct Access File
키 필드 > 해싱 사상 함수 > 물리적 주소 > 기록 검색
ㄴ. ISAF(색인 순차 접근 파일)
순차 + 직접 모두 가능
But 처리 속도 느림/기억 공간 낭비(색인 때문에)
데이터 변경 잦으면 재편성 필요
2) FCB(File Control Block)
FC 위한 정보 갖는 블록(파일명, 위치, 구조, 유형, 생성/제거 시간 포함)
3) Directory
<1단계>
<2단계> 사용자 간 파일 공유 어려움, 이름이 길어짐
<트리 구조> 데이터 생성/파괴 용이, 동명이D 가능(UNIX에서 사용)
4) 접근 제어 기법
ㄱ. Access Control Matrix: 장치(x축) x 사용자(y축)으로 정리
ㄴ. Access Control List: 장치(CPU, 메모리) 별로 제어 권한 정리
ㄷ. Capability List: 사용자, 관리자 별로 정리
[5] 분산 O.S.
1. 컴퓨터 시스템 구조
1)
SISD(1 Instruction 1 Data) |
일반인 PC |
SIMD |
다중처리 알파고 |
MISD |
비현실적 |
MIMD |
강결합 |
2) 주/종 프로세서 구조
Master CPU: 입출력, 연산 다
Slave CPU: 연산만(돈 못 먹고 일만 하는 노예)
2. 분산 OS
장점: 처리 속도, 확장성, 공유 용이
단점: 보안 취약, SW 개발 어려움, 적응성 낮음
3. Thread: 프로세스를 여러 개로 쪼갠 것(일을 나눠 여러 일꾼-CPU에게 나눠주는 식)
장점: 병행성 높음, 실행환경 공유 > 오버헤드 낮음
[6] OS의 실제
1. UNIX
1) 특징
ㄱ. 대화식OS + 오픈 소스(라이센스 비용 저렴)
ㄴ. C언어로 기술
ㄷ. 커널 용량이 작아 이식성 Good
2) UNIX 파일 시스템
부트 Block: 부팅용
실린더 Block: 파일 시스템 정보
i-node 테이블: 파일 정보
파일 테이블
3) 주요 명령어
-fork: 새로운 프로세스 생성, 혹은 복제
-fsck: FS Check
-finger: 사용자 정보 표시
-chmod: 파일에 대한 액세스 권한 설정, 사용자에게 부여
-chown: 소유자 변경
-wait: 자식 프로세스 하나 종료될 때까지 부모 프로세스 중지
-getppid: 자식 프로세스의 ID를 얻음
-mount: 기존 파일 시스템에 새로운 것을 연결
-cat: 파일 내용을 화면에 표시
-is: 현재 디렉토리 내 파일 목록 확인
'자격증 공부 > 정보처리기사' 카테고리의 다른 글
16년 3회차 정보처리기사 필기 합격! (0) | 2016.08.21 |
---|---|
핵심 정리(시스템 분석) (0) | 2016.08.21 |
핵심 정리(정보통신) (0) | 2016.08.12 |
핵심 정리(전자 계산기) (0) | 2016.08.11 |
핵심 정리(데이터베이스) (0) | 2016.08.11 |