먼지 쌓인 키보드
[정보처리기사 필기] 운영체제 정리 본문
=========운영체제=========
· 운영체제의 목적 및 성능평가 기준
- 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환시간 단축 등
· 운영체제의 기능 (*중요*)
- 프로세서, 기억장치, 입출력장치, 파일 및 정보들의 자원을 관리
- 자원의 스케줄링 기능 제공
- 사용자와 시크템 간의 편리한 인터페이스
- 각종 하드웨어와 네트워크 관리제어
- 데이터 관리, 자원의 공유 기능
- 자원 보호 기능
- 시스템의 오류 검사 복구
- 입출력에 대한 보조 기능
- 가상 계산기 기능 제공
· 프로세스의 정의(*중요*)
- 실행중인 프로그램
- PCB를 가진 프로그램
- 실기억장치에 저장된 프로그램
- 프로세서가 할당되는 실체
- 프로시저가 활동 중이 것
- 비동기적 행위를 일으키는 주체
- 지정된 결과를 얻기 위한 일련의 계통적 동작
- 목적 또는 결과에 따라 발생되는 사건의 과정
· 프로세스 상태
- 제출(Submit) : 작업을 시스템에 제출
- 접수(Hold) : 디스크 할당 위치에 저장
- 준비(Ready) : 프로세서를 할당 받기 위해 기다림
- 실행(Run) : 프로세서를 할당 받아 실행
- 대기(Wait), 보류, 블록(Block) : 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단 되고 입출력 처리가 완료 될 때까지 대기
- 종료(Terminated, Exit) : 프로세스 할당 해제
· 파일 디스크럽터의 특징
- 파일 제어 블록
- 시스템에 따라 다른 구조
- 파일 시스템이 관리하므로
사용자가 직접 참조할수 없음
- 파일마다 독립적으로 존재
- 일반적으로 보조기억장치 저장 파일이 개방될 때 주기억장치로 이동
- 파일을 관리하기 위해 필요한 정보 보관
· 주/종 시스템(*중요*)
주 프로세서 : 입출력과 연산 담당, 운영체제수행
종 프로세서 : 연산만 담당, 주 프로세서에게 서비스 요청, 사용자 프로그램만 담당
· ISAM 파일의 색인 구성
- 트랙 색인 영역 : 각 실린더 마다 하나씩, 각 트랙에 기록된 레콛 키 값 중 최대 킷값과 주소 정보가 기록
- 실린더 색인 영역 : 각 파일당 하나씩, 각 트랙 색인의 최대 키 값들로 구성된 영역
- 마스터 색인 : 실린더 색인이 많을 경우, 일정한 크기의 블록으로 구성, 해당 레코드가 어느 실린더 색인 영역에 있는지
· SSTF(*중요*)(Shortest seek time first) : 현재 헤드 위치에서 가장 가까운 거리에 있는 요청 먼저서비스, 처리량이 많고, 평균 탐색 시간이 짧음, 일괄 처리 시스템에 유용, 대화형 시스템에는 부적합
· C-SCAN(*중요*) : 항상 바깥쪽에서 안쪽으로 움직임(30이 시작이면 0으로 가고 마지막에서 다시 옴)
· RR(Round-Robin)
- 시분할 시스템을 위해 고안, FCFS 알고리즘을 선점 형태로 변형
- FCFS 기법처럼 큐에 먼저 들어온 프로세스가 먼저 CPU 할당 받음, 시간 할당량 동안만 실행 한 후 실행이 완료되지 않으면 프로세스에게 CPU를 넘겨주고 준비 상태 큐의 가장 맨 뒤로 배치
- 할당되는 시간이 클 경우 FCFS 기법과 같아지고 할당되는 시간이 작을 경우 문맥교환 및 오버헤드가 자주 발생
- 할당되는 시간의 크기가 작으면 작은 프로세스들에게 유리
· PCB(Process Control Block, 프로세스 제어 블록)에 저장되는 정보 : 프로세스의 현재 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스의 우선순위, CPU 레지스터 정보 등
· 모니터(Monitor)
- 동기화를 구현하기 위한 특수 프로그램 기법
- 특정 공유 자원을 프로세스에게 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성
- 자료 추상화와 정보 은폐개념을 기초, 공유 자원을 할당하기 위한 병행성 구조
- 반드시 모니터의 진입부를 호출 해야 함
- 외부의 프로시저는 직접 액세스 불가능
- 모니터의 경계에서 상호 배제가 시행
- 한순간에 하나의 프로세스만 진입하여 자원을 사용 할 수 있다.
- 모니터에 사용 되는 연산 : WAIT, SIGNAL
· 디스크 스케줄링 : 디스크 헤드가 움직이는 경로를 결정하는 기법, 탐색시간 최적화가 목적
· 디스크 스케줄링의 목적 : 처리량 최대화, 응답 시간의 최소화, 응답시간 편차의 최소화
· 비밀키 시스템(Private Key System, 개인키 시스템)
- 동일한 키로 데이터를 암호화, 대칭 암호화 기법
- 해독키를 아는 사람은 누구나 해독 가능
- 암호화/복호화 속도 빠름, 알고리즘 단순, 파일 크기가 작음
- 관리 해야 할 키의 수가 상대적으로 많음, 키의 분배가 어려움
- DES방식이 있음 (FEAL->DES와 방식 유사)
· 공용키 시스템(Public Key System, 공개키 시스템)
- 서로 다른 키로 암호화, 비대칭 암호화 기법
- 암호키는 공개, 해독키는 비밀
- 키의 분배가 용이, 관리해야 할 키의 수 적음
- 암호화/복호화 속도가 느리며 알고리즘이 복잡, 파일의 크기가 크다
- RSA 방식이 있음
· 세마포어(Semaphore)(*중요*)
- 세마포어를 n개로 초기화하였다면, 임계구역에 n개의 프로세서가 들어갈 수 있음
- ‘신호기’, ‘깃발’이란 뜻. 각 프로세스에 제어 신호를 전달하여 순서대로 작업
- P와 V라는 2개의 연산에 의해서 동기화 유지, 상호 배제의 원리 보장
- S는 P와 V 연산으로만 접근 가능한 세마포어 변수, 공유 자원의 개수를 나타내며 0과 1 혹은 0과 양의 값을 가질 수 있다.
· 보안 유지 방식
- 외부 보안(External Security)
시설보안 : 천재지변, 외부 침입자로부터
운영보안 : 전산소관리,경영자의정책과 통제
사용자마다 인가된 등급 권리 부여
- 사용자 인터페이스 보안
(User interface Security)
: 운영체제가 신원 확인후 권한 있는 사용자만
- 내부 보안(Internal Security)
: 내장된 보안 기능 사용, 데이터 무결성보장
· 유닉스 명령(*중요*)
fork : 새로운 프로세스 생성
exec : 새로운 프로세스 수행
find : 파일을 찾음
finger : 사용자 정보 표시
cp : 파일 복사
cat : 파일 내용을 화면에 표시
ls : 현재 디렉터리 내의 파일 목록 확인
chmod : 파일의 사용 허가 지정
· 디렉터리 구조(*중요*)
1단계 디렉터리 : 모든파일이 하나의 디렉터리
2단계 디렉터리 : 중앙에 마스터파일 그아래 사용자별로 서로 다른 디렉토리 2계층 구조
트리 구조(*중요*) :
- UNIX 유닉스에서 사용하는 디렉토리(*중요*)
- 하나의 루트, 여러개 종속 디렉터리
- 디렉토리의 생성과 파괴 용이
- 각 디렉토리는 서브 디렉토리 파일을 가짐
비순환 그래프 : 하위 파일이나 디렉터리 공동 사용, 사이클이 허용되지 X
일반 그래프 : 트리 구조에 링크 첨가, 순환허용
· 로더의 기능(*중요*) : 할당(Allocation), 연결(Linking), 재배치(Relocation), 적재(Loading)
· 로더의 종류(*중요*)
- Compile And Go 로더
: 언어 번역 프로그램이 로더 기능 수행
- 절대 로더(Absolute Loader)(*중요*)
: 목적 프로그램을 기억 장소에 적재
- 직접 연결 로더(Direct Loading Loader)
: 로더4가지기능수행, 재배치로더,상대로더
- 동적 연결 로더(Dynamic Loding Loader)
: 실행시 필요한 일부분만 적재
· 기억장치 관리 전략
- 반입(Fetch) : 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 전재 할 것인지 결정
- 배치(Placement) : 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 결정
- 교체(Replacement) : 이미 사용중인 상태에서 가상기억장치의 필요한 페이지를 주 기억장치에 배치 할 때, 이미 사용되고 있는 영역 중 어느 영역을 교체 할 것인지 결정 ex) FIFO, OPT, LRU 등
· 약결합시스템 = 분산처리시스템
강결합시스템 = 다중처리시스템
· 유닉스 파일 시스템의 구조(*중요*)
-부트 블록 : 부팅시 필요한 코드 저장
-슈퍼 블록 : 전체 파일 시스템 정보 저장
- i-node블록 : 각 파일에 대한 모든 정보 저장
-데이터 블록 : 디렉터리별로 디렉터리 엔트리,
실제 파일에 대한 데이터가 저장
· I-node에 포함되는 정보 : 파일 소유자의 사용 번호 및 그룹번호, 파일 크기, 파일 유형, 생성시기, 최종 변경 시기, 최근 사용 시기, 파일의 보호 권한, 파일 링크 수, 데이터가 저장 된 블록의 시작 주소 등
· 구역성의 종류(*중요*)
- 시간 구역성(Temporal Locality) : 프로세스가 실행되면서 하나의 페이지를 일정 시간동안 집중적으로 액세스, 시간구영이 이루어지는 기억장소에는 Loop(반복), Stack(스택), Sub Routine(부프로그램), Counting(집계)에 사용되는 변수
- 공간 구역성(Spatial Locality) : 프로세스 실생 시 일정 위치의 페이지를 집중적으로 액세스, 공간구역성이 이루어지는 기억 장소에는 *배열 순회, 순차적 코드의 실행, 프로그래머들이 관련된 변수들을 서로 근처에 선언
· chmod 사용 예
-(파일 구분) -wx(소유자) r-x(그룹) rwx(타사용자)
· 보안 요건(*중요*)
- 기밀성(Confidentiality, 비밀성) : 인가된 사용자에게만 접근이 허용, 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없다.
- 무결성(Integrity) : 인가된 사용자만 수정할 수 있다, 전송 중에 수정되지 않고 전달 되는 것을 의미
- 가용성(Availability) : 인가 받은 사용자는 언제라도 사용할 수 있다.
- 인증(Authentication) : 정보를 보내오는 사람의 신원을 확인, 사용자를 식별하고 사용자의 접근 권한을 검증
- 부인방지(Non Repudiation) 데이터를 송수신 한 자가 송수신 사실을 부인 할 수 없도록 송수신 증거를 제공
운영체제의 발달 순서(*중요*)
1. 일괄처리 시스템
2. 시분할 시스템
3. 다중 모드 시스템
4. 분산 처리 시스템
· 운영체제 운용 기법(*중요*)
- 일괄처리 시스템(Batch File System) : 일정량 또는 일정 기간 동안 데이터를 모아서 한번에
- 다중 프로그래밍 시스템(Multi-Programming System) : 하나의 CPU와 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리
- 시분할 시스템(Time Sharing System) : 여러명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리, 라운드 로빈(Round Robin) 방식이라고도 함
- 다중 처리 시스템(Multi-Processing System) : 여러 개의 CPU와 하나의 주기억 장치를 이용 여러개의 프로그램을 동시에 처리
- 실시간 처리 시스템(Real Time Processing System) : 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출
- 분산 처리 시스템(Distributed Processing System) : 여러 개의 컴퓨터를 통신 회선으로 연결하여 하나의 작업을 처리
다중처리기 시스템 구성시 고려사항***중요
-메모리 충돌문제
-캐시 일관성 문제
-메모리 접근의 효율성 문제
다중처리기***중요
-수행속도의 성능 개선이 목적
-하나의 복합적인 운영체제에 의해 전체시스템 제어
-프로세서들 중 하나가 고장나도 다른 프로세서들에 의해 고장난 프로세서의 작어을 대신 수행하는 장애극복이 가능
(*중요*)
· 커널은 하드웨어와 프로그램간의 인터페이스,
프로세스관리,기억장치관리, 파일관리,입출력관리,
프로세스간의 통신, 데이터전송 및 여러가지기능
(*중요*)
· 쉘은 사용자와 시스템간의 인터페이스, 사용자의 명령어를 인식하여 프로그램을 호추라고 명령을 수행하는 명령어 해석기(*중요*)
- 페이징(*중요*) 기법은 가상기억장치에 보관되어 있는 프로그램과 주기억장치 영역을 동일한 크기로 나눔, 외부단편화(X), 내부단편화(o), 맵 테이블 필요
- 페이지가 클수록 페이지 테이블 크기 작아짐
- 페이지가 클수록 워킹셋 낭비
- 페이지가 클수록 실제프로그램 수행과 무관한 내용 포함
- 페이지가 클수록 입출력 효율적
-세그먼테이션은 다양한 크기의 논리적인 단위로나눔, 각 세그먼트는 고유한 이름과 크기를 가짐, 사용자 관점을 보존, 기억 공간을 절약, 세그먼트 맵 테이블 필요, 기억장치 보호키 필요, 외부단편화(o), 내부단편화(x)
· 분산 운영체제의 목적
- 자원 공유, 연산 속도의 향상, 신뢰도 향상, 콘퓨터 통신 등(단점 : 보안성 취약)
· 투명성
- 이주(Migration) : 동작에 영향을 받지 않고 시스템 내에 있는 자원 이동
- 복제(Replication) : 자원의 복제를 사용자에게 통지 할 필요 없이 자유로이 수행
- 병행(Concurrency) : 자원의 위치를 모르더라도 사용자들이 자원을 병행 처리, 공유
- 접근(Access) : 각 프로세서의 로그인 등과 같은 동작을 사용하여 지역이나 원격 지원 접근
- 성능(Performance) : 여러 부하에 대해 성능을 증가시키기 위해 시스템을 재구성
- 규모(Scaling) : 시스템의 구조나 응용 알고리즘에 대한 변경 없이 규모에 맞추어 확장
- 고장(Failure) : 고장에도 불구하고 그들의 작업을 완료
· 파일 시스템의 기능(*중요*)
- 사용자와 보조기억 장치 사이에 인터페이스 제공
- 사용자가 파일 생성, 수정, 제거
- 적절한 제어 방식, 타인의 파일을 공동으로 사용
- 파일 공유를 위해서 판독만 허용, 기록만 허용, 수행만 허용 또는 이들을 여러 형태로 조합 한 것 등 여러 종류의 액세스 제어 방법 제공
- 사용자가 적합한 구조로 파일 구성
- 파일의 예비 와 복구 기능 제공
- 기호화 된 이름 사용 가능
- 파일의 논리적 상태(디렉토리)를 보여줌
- 파일이 보호
- 데이터의 무결성
· UNIX***중요
- 시분할 시스템을 위해 설계, 대화식 운영체제, 개방형 소스, 이식성이 높음, 호환성이 높음, 크기가 작고 이해하기 쉬움, 멀티 유저-멀티 테스킹 지원, 통신망 관리용 운영체제, 트리 구조, 전문적인 프로그램 개발에 용이, 다양한 유틸리티 프로그램 존재
· 쓰레드(Thread)
- 프로세스 내에서의 작업 단위, 여러 지원을 할당 받아 실행하는 프로그램의 단위, 하나의 스레드가 존재하면 단일 쓰레드, 아니면 다중 쓰레드, 경량 프로세스라고도 함, 자신만의 스택과 레지스터를 가지며 독립 된 제어 흐름을 가짐
· 쓰레드의 분류
- 사용자 수준의 쓰레드 : 사용자가 만든 라이브러리를 사용하여 쓰레드를 운용, 속도는 빠르지만 구현이 어려움
- 커널 수준의 쓰레드 : 운영체제의 커널에 의해 쓰레드를 운용, 구현이 쉽지만 속도가 느림
· 교착상태 해결방법(*중요*)
- 예방기법 : 교착 상태 발생의 4가지 조건중 어느하나를 제거(부정)함으로써 수행
- 회피기법 : 교착 상태가 발생할 가능성을 배제하지 않고 발생하면 피해가는(은행원알고리즘)
- 발견기법 : 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원 발견
- 회복기법 : 교착 상태를 일으킨 프로세스를 종료하거나 자원을 선점하여 회복하는 것
· 교착상태 해복 기법
- 프로세스 종료 : 모든 프로세스를 종료 하거나 하나씩 종료하는 방법
- 자원 선점 : 자원들을 선점하여 다른 프로세스에게 할당, 해당 프로세스를 일시 정시, 우선순위가 낮은 프로세스-수행된 정도가 적은 프로세스-사용되는 자원이 적은 프로세스 등을 위주로 자원을 선점
· 제어 프로그램(Control Program)
- 감시 프로그램(Supervisor Program) : 가장 주요한 역할 담당, 시스템 전체의 작동 상태를 감시 감독
- 작업 제어 프로그램(Job Control Program) : 어떤 업무를 처리하고 다른 업무로의 이행을 자동으로 수행하기 위한 준비 및 그 처리에 대한 완료를 담당, 스케줄 및 시스템 자원 할당 등
- 자료 관리 프로그램(Data Management Program) : 주기억장치와 보조기억장치 사이의 데이터 전송과 보조기억장치의 자료 갱신 및 유지보수 기능을 수행
· 처리 프로그램(Processing Program)
- 언어 번역 프로그램(Language Translate Program) : 원시 프로그램을 기계어 형태의 목적 프로그램으로 번역, 어셈블러, 컴파일러, 인터프리너가 있음
- 서비스 프로그램(Service Program) : 컴퓨터를 효율적으로 사용할 수 있는 사용 빈도가 높은 프로그램
- 문제 프로그램(Problem Program) : 특정 업무 및 해결을 위해 사용자가 작성한 프로그램
· 파일 보호 기법(*중요*)
- 파일의 명명(Naming) : 파일의 이름을 알아야 함
- 비밀번호(Password, 암호) : 비번을 알아야 함
- 접근 제어(Access Control)(*중요*): 사용자에 따라 공유 데이터에 접근 할 수 있는 권한을 제한, 즉 각 파일마다 접근 목록을 두어 접근 가능한 사용자와 동작을 기록한 후 이를 근거로 접근 허용
· 페이지 교체 기법
-OPT : 오랫동안 사용하지 않을 페이지 교체
-FIFO(*중요*) : 가장 먼저 들어온 페이지 교체
-LRU(recent) : 최근 오랫동안 사용하지 않은 페이지
-LFU(famous) : 사용빈도가 가장 적은 페이지 교체
-NUR (*중요*) : 최근 사용하지 않은 페이지 교체
(참조비트와 변형 비트 필요)
· 분산 운영체제의 구조*******(중요)
- 망형-완전연결(Fully Connection)형 : 모든 사이트들과 직접 연결, 사이트 수가 n개이면 링크 수는 n(n-1)/2개가 됨
- 망형-부분연결(Partially Connection)형 : 일부 사이트들 간에만 직접 연결, 직접 연결이 안 된 사이트는 다른 연결된 사이트를 통해 통신
- 트리(Tree) 또는 계층(Hierarchy)형 : 분산 처리 시스템의 가장 대표적인 형태, 트리형, 부모 사이트의 자식 사이트들은 그 부모 사이트를 통해 통신이 이루어짐
- 스타(Star)형 = 성형 : 하나의 중앙 사이트에 직접 연결, 그 되는 연결 돼 있지 않음, 구조가 간단하고 보수 및 관리가 용이
- 링형(Ring) = 환형 : 사이트가 인접하는 다른 두 사이트와만 연결, 정보는 단방향 또는 양방향으로 전달
- 다중 접근 버스 연결(Multi Access Bus Connection)형 : 모든 사이트들이 공유 버스에 연결 된 구조, 물리적 구조가 단순하고, 사이트의 추가와 삭제가 용이
- 외부 단편화(external Fragmentation) : 영역이 작아서 남는 영역
- 내부 단편화 : 영역이 커서 남는 영역
- HRN 기법:(대기시간+서비스시간)/(서비스시간)
· 완전연결(n) : n(n-1)/2
상호배제(*중요*)
-두 개 이상의 프로세스들이 동시에 임계 영역에 있어서는 안됨
-어ᄄᅠᆫ 프로세스라도 임계 구역으로 들억가는 것이 무한정 연기되어서는 안됨
-임계구역 바깥에 있는 프로세스가 다른 프로세스의 임계구역 진입을 막아서는 안됨
파일 디스크립터(*중요*)
(약간 정보느낌 ex) 파일 내용? 정보라기보다 파일의 내용이기 때문에 아니라고 생각하자)
-보조기억장치 정보
-파일 구조
-접근 제어 정보
-생성 날짜
스풀링(*중요*)
- 기억장소는 주로 디스크
- 고속 장치와 저속장치간의 처리 속도 차이를 줄이기 위한 방법
- 입출력과 계산을 동시에 수행
- 입출력 작업의 지연을 방지
- 저속의 장치에서 읽어온 자료를 중간의 저장장치에 저장하는 방식
여분정보삽입기법(TrafficPaddingMechanism)*중요
여분의 의미없는 데이터를 정상적인 데이터 사이에 삽입하여 해킹 공격을 방어하는 기법
직접파일(direct file)(*중요*)
-직접 접근 기억장치의 물리적 주소를 통해 직접 레코드에 접근
-키에 일정한 함수를 적용하여 상대 레코드 주소를 얻고 그 주소를 레코드에 저장하는 파일구조
-직접 접근 기억장치의 물리적 구조에 대한 지식 필요
'공부 관련 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 1~5과목 이것만은 외우고 시험가자 (0) | 2019.02.26 |
---|---|
[정보처리기사 필기] 데이터 통신 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 소프트웨어공학 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 전자 계산기 정리 (0) | 2019.02.26 |
[정보처리기사 필기] 데이터베이스 정리 (0) | 2019.02.26 |