본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 필기 준비_운영체제

by sjs_2215 2019. 7. 13.

정처기 필기_운영체제


출처: 시나공 summary 정보처리기사 필기




  • 운영체제의 일반적인 역할

사용자들 간의 하드웨어의 공동 사용

자원의 효과적인 운영을 위한 스케줄링

입/출력에 대한 보조 역할

실행 가능한 목적 프로그램 생성 (x) (링커의 역할)

  • 구역성(Locality)

(Denning에 의해 증명된 이론으로) 어떤 프로그램의 참조 영역은 지역화 된다는 것이다.

워킹 셋(Working Set) 이론의 바탕이 되었다.


  • 시간 구역성: 어떤 프로세스가 최근에 참조한 기억 장소의 특정 부분은 그 후에도 계속 참조할 가능성이 높음을 의미한다.

    ​ : 부 프로그램이나 서브루틴, 순환 구조를 가진 루틴, 스택 등의 프로그램 구조나 자료구조는 시간 구역성의 특징을 가진다.


Capability List ( 권한 리스트 )

: 접근 제어 행렬에 있는 각 행, 즉 영역을 중심으로 구성한 것으로서 각 사용자에 대한 자격들로 구성되면, 자격은 객체와 그 객체에 허용되는 연산 리스트이다.


Non-Repudiation(부인 방지)

= 데이터를 송/수신한 자가 송/수신 사실을 부인할 수 없도록 송/수신 증거를 제공하는 것


preemtive scheduling 선점 방식: RR, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐

non-preemtive scheduling 비선점 방식: FIFO(=FCFS), SJF(shortest job first), 우선순위, HRN, 기한부




시스템 소프트웨어의 구성

  • 제어 프로그램

= 어떤 업무를 처리하고 다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 그 처리 완료를 담당하는 기능을 한다.

: 감시 프로그램, 작업 제어 프로그램, 데이터 관리 프로그램


  • 처리 프로그램

= 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램

: 언어 번역 프로그램, 서비스 프로그램, 문제 프로그램




기억장치 관리 기법

: fetch, placement, replacement (반입, 배치, 교체) strategy

cycle strategy(x)




- 약결합(loosely coupled) 시스템

= 분산 처리 시스템

= 각 시스템마다 독자적인 운영이 가능하므로 cpu간의 결합력이 약함

: 사이트는 자신만의 독립된 운영체제와 주기억 장치를 갖는다.


- 강결합(tightly coupled) 시스템

= 다중 처리 시스템

= 하나의 메모리를 사용하므로 cpu 간의 결합력이 강함

: 하나의 운영체제가 모든 프로세서와 시스템 하드웨어를 제어함




디렉토리 그림 참고 https://m.blog.naver.com/jevida/140192998908


  • 2단계 디렉토리 구조

: 각각의 사용자에 대한 MFD(마스터 파일 디렉터리)와 각 사용자별로 만들어 지는 UFD(사용자별로 서로 다른 파일 디렉터리)로 구성된다.

: 서로 다른 디렉토리에서는 동일한 파일 이름을 사용할 수 있음

MFD: 각 사용자의 이름이나 계정 번호 및 UFD를 가리키는 포인터를 갖고 있다

UFD: 오직 한 사용자가 갖고 있는 파일들에 대한 파일 정보만 갖고 있다.


  • 비순환 그래프 디렉터리

: 하위 디렉터리가 상위 디렉터리나 상위 파일을 공유할 수 없다.

: 하나의 파일이나 디렉터리가 여러 개의 경로 이름을 가질 수 있다.

: 공유된 파일을 삭제할 경우 고아 포인터(Dangling Pointer)가 발생할 수 있다.

: 공유된 하나의 파일을 탐색할 경우 다른 경로로 두 번 이상 찾아갈 수 있으므로 성능 저하가 초래될 수 있다.

: 디스크 공간을 절약할 수 있다.

: 부 디렉터리의 공동 사용이 가능하다


트리 디렉터리

unix, 윈도 운영체제에서 사용되는 디렉터리 구조이다.

디렉터리의 탐색은 포인터를 사용하며, 경로명은 절대와 상대 경로명을 사용한다.


1단계 디렉터리

가장 간단한 디렉터리 구조로서, 모든 파일들이 유일한 이름을 가지고 있고, 같은 디렉터리 내에 위치하며 관리되는 디렉터리 구조이다.


일반적인 그래프 디렉터리

트리 구조에 링크를 첨가시켜 순환을 허용하는 그래프 구조

사이클이 허용되고, 불필요한 파일을 제거하기 위해 참조 카운터가 필요한 디렉터리이다.



FIFO=First In First Out = FCFS (First Come First Service)


SSTF 스케줄링=shortest seek time first


총 반환시간 = (cpu 도착시간+앞에꺼 끝날때까지 기다린시간) + 본인 사용 시간


Round Robin 스케줄링

준비상태 큐에 먼저 들어온 프로세스가 먼저 cpu를 할당받는다.

시간 할당이 작아지면 프로세스 문맥 교환이 자주 일어난다.

time sharing system 을 위해 고안된 방식이다.

시간 할당이 커지면 FCFS 스케줄링과 같은 효과를 얻을 수 있다.


Round Robin(라운드 로빈) 운영체제 운용 기법

: 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해 줌으로써 사용자는 독립된 컴퓨터를 사용하는 것처럼 느끼는 것으로, 이를 이용하는 것이 시분할 시스템(Time Sharing System) 입니다.


쓰레드(Tread) 특징

: 프로세스 에서의 작업 단위로 외부에 존재하는 스레드는 없다

: 실행 환경을 공유시켜 기억장소의 낭비가 줄어든다.

: 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.

: 프로세스들 간의 통신을 향상시킬 수 있다.


사용자 인터페이스 보안

: 보안 유지 방식 중 하나이며, 운영체제가 사용자의 신원을 확인한 후, 권한이 있는 사용자에게만 시스템의 프로그램과 데이터를 사용할 수 있게 하는 방법




  • __절대 로더 (Absolute Loader) __

: 로더의 역할이 축소되어 가장 간단한 프로그램으로 구성된 로더로서, 기억장소 할당이나 연결을 프로그래머가 직접 저장하는 방식이다.

: 목적 프로그램을 기억장소에 적재시키는 기능'만' 수행하는 로더이다.

단점: 프로그래머 입장에서는 매우 어렵고 한번 지정한 주기억장소의 위치는 변경이 힘들다


로더: 컴퓨터 내부로 정보를 들여오거나, 로드 모듈을 디스크 등의 보조기억장치로부터 주기억장치에 적재하는 시스템 소프트웨어

  • 로더의 기능
  1. 할당(allocation): 실행 프로그램을 실행시키기 위해 기억장치 내에 옮겨놓을 공간을 확보하는 기능
  2. 연결(linking): 부프로그램 호출 시 그 부프로그램이 할당된 기억장소의 시작주소를 호출한 부분에 등록하여 연결하는 기능
  3. 재배치(relocation): 디스크 등의 보조기억장치에 저장된 프로그램이 사용하는 각 주소들을 할당된 기억장소의 실제 주소로 배치시키는 기능
  4. 적재(loading): 실행 프로그램을 할당된 기억공간에 실제로 옮기는 기능

  • Compile and go 로더: 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
  • 직접 연결 로더(direct linking loader): 일반적인 기능의 로더
  • 동적 적재 로더(dynamic loading loader): 프로그램을 한꺼번에 적재하는 것이 아니라, 실행 시 필요한 일부분만 적재하는 로더, (=load-on-call)

로더의 기능 4가지

: allocation 할당, linking 연결, relocation 재배치, loading 적재

transloation (X)




하이퍼 큐브에서 필요한 프로세서 수를 계산하는 방법

하나의 프로세서에 연결되는 다른 프로세서의 수가 n개일 때, 총 프로세서는 총 2의 n승




HRN 스케줄링 우선순위 공식

(서비스 시간+대기시간) / 서비스 시간




  • UNIX 시스템의 구성: 커널, 쉘, 유틸리티
커널
프로세스 관리 명령어 해독(해석기)
기억장치 관리 시스템과 사용자간의 인터페이스를 담당
입/출력 관리 사용자와 커널 사이에서 중계자 역할
프로세스간 통신 단말장치로부터 받은 명령을 커널로 보내거나 해당 프로그램을 작동시킨다.
데이터 전송 및 변환



  • UNIX의 특징:

트리구조의 파일 시스템을 갖는다, 이식성이 높으며 장치-프로세스 간의 호환성이 높다, 대화식 운영체제이다, multi-user와 multi-tasking 둘 다를 지원한다.

상당 부분 C언어를 사용하여 작성되었으며, 이식성이 우수하다.




  • 기억장치 관리 전략
  1. 배치 전략: 최초 적합, 최적 적합, 최악 적합 (First, Best, Worst Fit)

Q) 10k를 first/best/worst fit을 적용할 경우 할당될 영역은?
영역1 9k
영역2 15k
영역3 10k
영역4 30k
ANS) 영역2/영역3/영역4



  • 프로세스의 정의

: 프로시저가 활동 중인 것, 실행 중인 프로그램, 운영체제가 관리하는 실행 단위

: PCB를 가진 프로그램


PCB

: 프로세스에 할당된 자원에 대한 정보를 갖고 있다.

: 프로세스의 우선 순위에 대한 정보를 갖고 있다.

: 프로세스의 현 상태를 알 수 있다.

+PCB에 저장되어 있는 정보(포인터/부모 프로세스에 대한 포인터/자식 프로세스에 대한 포인터/프로세스가 위치한 메모리에 대한 포인터/할당된 자원에 대한 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스의 우선순위, CPU 레지스터 정보/누산기/인덱스 레지스터/프로그램 카운터 등, 주기억장치 관리 정보, 입출력 상태 정보, 계정 정보)

프로세스 사용 빈도 (x)

파일 할당 테이블(x)

프로세스 생성 정보(x)

: 각 프로세스가 생성될 때마다 고유의 PCB가 생성되므로, 부모 프로세스와 자식 프로세스는 각각 다른 PCB를 사용합니다.


: 비동기적 행위를 일으키는 주체

: 프로세서가 할당되는 실체




  • UNIX 명령어

cat : 파일 내용을 화면에 표시

chown: 파일의 소유자를 변경

chmod: 파일의 사용 허가 지정

finger: 사용자 정보를 표시

fsck: 파일 시스템을 검사 및 보수하여 무결성을 검사

mkfs: 파일 시스템 생성

mount: 파일 시스템을 마운팅(새로운 파일 시스템을 기존 파일 시스템의 서브 디렉터리에 연결하는 것)

fort: 새로운 프로세스 생성

&: 백그라운드 처리를 위해 명령의 끝에 입력

wait: fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림

rmdir, chdir, ls, exit, rm, cp, mv, getpid, getppid, exec




  • 주/종 (master/slave)처리기 시스템

-주프로세서는 입/출력과 연산을 담당

-주프로세서에서 입/출력을 담당하는 비대칭 구조이다.

-주프로세서만이 운영체제를 수행

-주프로세서에 문제가 발생하면 전체 시스템이 멈춘다

-종프로세서는 연산만 담당




  • 운영체제 성능평가 기준

처리능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양

반환 시간(Turn around time): 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

사용 가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

신뢰도(Reliability): 시스템이 주어진 문제를 정확하게 해결하는 정도




  • 세그멘테이션 기법

세그멘트=프로그램을 가변적인 크기로 나눈 단위

페이지 = 프로그램을 일정한 크기로 나눈 단위

: 각 세그먼트는 고유한 이름과 크기를 갖는다.

: 세그먼트 맴 테이블이 필요하다.

: 기억장치 보호키가 필요하다.




  • 워킹 셋(Working Set)

: 프로세스가 실행하는 과정에서 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹 셋은 시간에 따라 바뀌게 된다.

: 프로그램의 구역성(Locality) 특징을 이용한다.

: 워킹 셋에 속한 페이지를 참조하면 프로세스의 기억장치 사용은 안전상태가 된다.




  • UNIX 파일 시스템의 l-node 블록

l-node에 포함되는 정보

: 파일의 링크 수(o)

: 파일이 만들어진 시간 (o)

: 파일의 크기(o)

: 파일이 최초로 수정된 시간(x)

: 파일의 사용된 횟수, 파일 경로명 (x)


  • UNIX 파일 시스템의 슈퍼 블록

전체 파일 시스템에 대한 정보

: 사용 가능한 I-NODE

: 사용 가능한 디스크 블록의 개수

: File 시스템마다 각각의 슈퍼 블록을 가지고 있음




파일 보호 기법

: 파일 손상을 막기 위한 파일 보호 기법에는 파일 명명 naming, 접근 제어 access control, 비밀번호/암호화 password/cryptography가 있다

복구 recovery(x)




- 시간 구역성

=프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상


- 공간 구역성

=프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상


시간 구역성이 이루어지는 기억장소 공간 구역성이 이루어지는 기억장소
loop 반복 순환
stack 스택
sub routine 부프로그램
counting 1씩 증감
totaling 집계에 사용되는 변수(기억장소)
array traversal 배열 순회
순차적 코드의 실행
프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소
같은 영역에 있는 변수를 참조할 때 사용



분산 처리 시스템의 목적 4가지

: 신뢰도 향상(여러 시스템 중 하나의 시스템에 오류가 발생하더라도 다른 시스템은 계속 일을 처리할 수 있으므로 신뢰도가 향상됨) , 자원 공유, 연산 속도 향상, 컴퓨터 통신(지리적으로 멀리 떨어져 있더라도 통신망을 통해 정보를 교환할 수 있음)

보안석 취약




  • 분산 운영체제 - star 성형 연결구조

: 모든 사이트는 하나의 호스트에 직접 연결

: 중앙 컴퓨터 장애 시 모든 사이트 간 통신 불가

: 통신 시 최대 두 개의 링크만 필요

: 통신 비용 저렴


  • 분산 운영체제 - 트리 계층(=hierarchy형) 연결구조

: 분산 처리 시스템의 가장 대표적인 형태, 각 사이트들이 트리 형태로 연결된 구조

: 부모(상위) 사이트의 자식(하위) 사이트들은 그 부모 사이트를 통해 통신이 이루어짐

: 부모 사이트가 고장나면 그 자식 사이트들은 통신이 불가능함




working set

참조된 페이지들의 집합을 의미하는 것. 중복을 제거하여 열거하면 됨.

ex) 참조된 페이지가 {2,3,5,5,6,3,7}이면, working set은 {2,3,5,6,7}




교착상태(Deadlock교)의 회복 기법

: 교착상태에 있는 모든 프로세스를 중지시킨다.

: 교착상태가 없어질 때까지 교착상태에 포함된 프로세스를 하나씩 종료시킨다.

: 교착상태 회복 기법은 시스템 내에 존재하는 교착상태를 제거하기 위하여 사용된다.

: 교착상태의 프로세스에게 할당된 자원을 선점하여 프로세스나 자원을 회복한다.


교착상태 해결 방법 4가지

  1. 예방 기법: 사전에 시스템을 제어하는 방법 (상호 배제 부정, 점유/대기 부정, 비선점 부정, 환형 대기 부정)
  2. 회피 기법: 적절히 피해가는 방법 (주로, 은행원 알고리즘이 사용됨)
  3. 발견 기법: 교착상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것으로, 자원 할당 그래프 등을 사용
  4. 회복 기법: 교착상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

교착 상태의 4가지 필요 충분 조건

: 상호 배제, 점유와 대기, 선점, 환형 대기 (mutual exclusion, hold and wait, non-preemption, circular wait)




페이지 크기

페이지 크기가 적을 경우 = 페이지 개수가 많다 페이지 크기가 클 경우 = 페이지 개수가 적다
페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐
디스크 접근 횟수가 많아져서 전체적인 입/출력 시간은 늘어남
페이지 단편화 감소, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦
필요한 내용만 적재될 확률이 높기 때문에 더 효율적인 워킹 셋을 유지할 수 있음
페이지 맵 테이블의 크기가 작아지고 매핑 속도가 빨라짐
디스크 접근 횟수가 줄어들어 전체적인 입/출력의 효율성이 증가함
페이지의 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
불필요한 내용까지도 주기억장치에 적재될 수 있음



Thrashing 스래싱: 프로세스들 간의 메모리 경쟁으로 인하여 지나치게 페이지 폴트가 발생하여 전체 시스템의 성능이 저하되는 현상

Fragmentation 단편화: 분할된 주기억장치에 프로그램을 할당하고 반하는 과정을 반복하면서 사용되지 않고 남는 기억장치의 빈 공간 조각

prepaging 프리페이징: 처음의 과도한 페이지 부재를 방지하기 위해서 필요할 것 같은 모든 페이지를 한꺼번에 페이지 프레임에 적재하는 기법

locality 구역성: 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론




batch processing 일괄처리 시스템

= 운영체제 형태 중 시대적으로 가장 먼저 생겨난 운용 기법으로, 일정량 또는 일정 기간 동안 데이터를 모아 한꺼번에 처리한다


multi-programming 다중 프로그래밍 시스템

= 2개 이상의 프로그램을 주기억장치에 기억시키고 cpu를 번갈아 사용하면서 처리하여 컴퓨터 시스템 자원 활용률을 극대화하기 위한 프로그래밍 기법이다.


time sharing 시분할 시스템

= 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 '번걸아가며' 처리해 줌으로써 각 사용자들은 각자 독립된 컴퓨터를 사용하는 느낌을 갖는 시스템이다.

: Round Robin 방식이라고도 한다.

: 하나의 cpu를 여러 개의 작업들이 정해진 시간 동안 번갈아 사용한다.

: cpu 전체 사용시간을 작은 작업 시간량 time slice으로 나누어서 그 시간 동안만 번갈아가면서 ~


multi-processing 다중 처리 시스템

= cpu를 여러 개 두고 동시에 프로그램을 수행하여 업무를 분담하여 처리하는 방식이다


real time processing 실시간 처리 시스템

= 한정된 시간 내 자료를 분석하여 정해진 시간에 반드시 작업을 처리하여야 하는 시스템 (비행기 제어, 교통 제어 시스템)




프로세스 상태 전이 관련 용어

dispatch: 준비 상태에서 대기하고 있는 프로세스 -> 프로세서 할당 받아 실행 상태로 전이

wake-up: 대기 상태에서 -> 준비 상태로 전이

spooling: 나중에 한꺼번에 입/출력하기 위해 '디스크에 저장하는 과정'

workout(x)




페이지 교체 알고리즘

NUR

= 최근에 사용하지 않은 페이지를 교체하는 기법, 매 페이지마다 2개의 하드웨어 비트인 참조reference 비트, 변형modified 비트가 필요하다.

: LRU와 비슷한 알고리즘.

교체 순서 참조 비트 변형 비트
1 0 0
2 0 1
3 1 0
4 1 1

FIFO

: 벨레이디 모순 현상이 발생하는 교체 비법


LRU

= 가장 오랫동안 사용되지 '않았던' 페이지를 먼저 대체하는 기법


OPT

= '앞으로' 가장 오랫동안 사용하지 '않을'페이지를 교체하는 기법



Comments