먼지 쌓인 키보드

[정보처리기사 필기] 운영체제 정리 본문

공부 관련/정보처리기사

[정보처리기사 필기] 운영체제 정리

Under_Desk 2019. 2. 26. 15:30
반응형

=========운영체제=========

 

· 운영체제의 목적 및 성능평가 기준

- 처리 능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환시간 단축 등

 

· 운영체제의 기능 (*중요*)

- 프로세서, 기억장치, 입출력장치, 파일 및 정보들의 자원을 관리

- 자원의 스케줄링 기능 제공

- 사용자와 시크템 간의 편리한 인터페이스

- 각종 하드웨어와 네트워크 관리제어

- 데이터 관리, 자원의 공유 기능

- 자원 보호 기능

- 시스템의 오류 검사 복구

- 입출력에 대한 보조 기능

- 가상 계산기 기능 제공

 

· 프로세스의 정의(*중요*)

- 실행중인 프로그램

- 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개의 프로세서가 들어갈 수 있음

- ‘신호기’, ‘깃발이란 뜻. 각 프로세스에 제어 신호를 전달하여 순서대로 작업

- PV라는 2개의 연산에 의해서 동기화 유지, 상호 배제의 원리 보장

- SPV 연산으로만 접근 가능한 세마포어 변수, 공유 자원의 개수를 나타내며 01 혹은 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)(*중요*)

-직접 접근 기억장치의 물리적 주소를 통해 직접 레코드에 접근

-키에 일정한 함수를 적용하여 상대 레코드 주소를 얻고 그 주소를 레코드에 저장하는 파일구조

-직접 접근 기억장치의 물리적 구조에 대한 지식 필요

 

반응형
Comments