본문 바로가기
소프트웨어공학/정보처리기사

[정보처리기사 필기] 프로그래밍 언어 활용 - 운영체제

by javapp 자바앱 2022. 3. 26.
728x90

 

 

운영체제

 

 

자원 분배

자원 관리

입출력 장치와 사용자 프로그램 제어

 

 

운영체제 계층 구조 순서

    하드웨어 - CPU 관리 - 기억 장치 관리 - 주변 장치 관리

 

 

운영체제 성능 평가 척도

    처리량 Throughput

        작업량

    반환시간 Turn around time

        결과를 받을 때까지 경과 시간

    신뢰도 Reliability

        정확하게 해결

    이용 가능도 Availability

        얼마나 빨리 사용

    병목 Bottleneck

        처리량 최대 한계 도달 발생


UNIX

    커널

        프로세스 관리 기능, 입출력 관리 수행

        하드웨어 보호, 사용자 서비스 제공

    

    

        명령어 해석기

        인터페이스 담당

        여러 종류

    

    I-node

        파일에 대한 링크 수

        파일 마지막으로 수정한 시간

        파일 소유자의 사용자 식별

 

 

exec() : 새로운 프로세스 호출

getpid() : 프로세스명 등 정보 얻는다.

fork() : 새로운 프로세스 생성, 복제

new() : 객체 생성

 

ls : 파일 목록

cat : 파일에 내용을 화면에 출력

chmode : 파일 속성 변경

ls -l 수행 결과

-rwxr-xr— 2 peter staff 3542 8월 31일 10:00 aaash

처음 - : 일반 파일 타입

rwx : 소유권자 권한

r-x : 그룹 권한

r— : 다른 사용자 \ 전체

2 : 링크수

peter : 소유자 명

staff : 그룹 명

aaash : 파일 명

파일 사용 권한 변경 : chmod


프로세스

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

    프로세스 제어 블록 PCB를 가진 프로그램

    PCB : 프로세스 구분하기 위한 프로세스 제어 블록

        프로세스 현 상태

        프로세스 우선순위

        프로세스 고유한 식별자

 

    디스패치 : 대기하고 있는 프로세스 중 하나가 실행 상태로 변하는 시점

    스풀 spool : 입출력 장치와의 속도 차 극복 - 디스크의 일부

    버퍼링 : CPU와 입출력 장치 속도 차이 - 메모리의 일부

    문맥 교환 : 프로세스 변경하기 위해, 현재 프로세스 상태 정보 저장하고,

        앞으로 실행될 프로세스 상태 정보 설정한 다음에 CPU 할당하여 실행되도록 하는 작업

 

    프로세스 상태

        Ready → Run / Running → Block | Exit

        Ready → Run : 디스패치

        Run - > Ready : 인터럽트

        Run → Block : I/O 요구

 

 

프로세스 스케줄링 기법

    비선점 스케줄링

        FIFO, SJF, HRN ..

        FIFO (First-in , First-out

        SJF (Short Job First)

            실행 시간 가장 작은 작업 먼저 실행

        HRN

            우선순위 큰 값부터

            HRN 우선순위 = (대기시간 + 서비스 시간) / 서비스 시간

 

    선점 스케줄링

        RR, SRT, MFQ

        SRT (Shortest, Remaining Time)

            “남아있는” 실행 시간 가장 작은 프로세스 먼저

            시분할 시스템에 유용하다.

            임계치를 사용한다.

        RR

            시간 할당량 너무 커지면 FCFS 방식처럼 동작

 

    혼합형 스케줄링

        MLQ : 선점형 , 비선점형

            우선순위 가장 높은 큐 : 비선점형

            우선순위 낮은 큐 : 선점형

            대기 리스트간 프로세스 이동 안된다.

 

    에이징 기법

        우선순위 낮은 프로세스가 무한대기 하는 상황 방지 기법

 

    상호배제 Mutual Exclusion

        임계구역을 어느 시점에서 단지 한 개의 프로세스만이 사용 할 수 있도록

 

        임계구역 Critical Section

            다중 프로그래밍 기법

            두 개 이상의 프로세스가 운영될 떄 서로 공유하게 되는 자원

            임계영역에서의 작업은 신속하게

            특정 프로세스가 독점하면 안된다.

 

        상호배제 요구 조건

            어떤 프로세스도 임계구역에 진입하는 것이 무한정 연기되면 안된다.

            임계구역 안에 있는 프로세스가 다른 프로세스의 임계구역 진입을 막을 수 있어야한다.

            프로세스들의 상대적인 속도에 대해 어떠한 가정을 하면 안된다.

 

 

세마포어

    임계구역 문제를 해결하기 위한 동기화 도구

    이진 세마포어와 계수형 세마포어

    표준 단위 연산 : P(Wait), V(Signal)

 

 

모니터

   세마포어를 실제 구현한 프로그램

   자원을 원하는 프로세스는 진입로를 호출

   데이터 및 프로시저 포함하는 병행성 구조

   외부의 프로세스는 모니터 내부 데이터 직접 엑세스할 수 없다.

   원하는 모든 프로세스는 동시에 모니터 내에 들어갈 수 없다.

   Wait, Signal 연산

 

 

교착 상태 DeadLock

   복수의 프로세스가 가능하지 못한 상태를 무한정 기다리고 있는 상태

 

   필요 충분 조건 4가지

     상호배제 Mutual Exclusion

     비선점 Non Preemption

     환형 대기 Circular Wait

     점유와 대기 Hold and Wait

 

 

해결 방안

    예방, 회피, 발견, 회복

    예방 Prevention

        4가지 부정

    회피 Avoidance

        교착 상태 인정하고 피해가는 방법

        은행원 알고리즘

            불안전 상태 \ 안전 상태

            대화식 적용 X

    발견 Detection

        이유 파악

    회복 Recovery

        희생양 정하는 일


단편화 Fragmentation

    내부 단편화

        이미 정해진 크기, 프로그램 할당

        적재하고 남는 공간

    외부 단편화

        사용 가능한 분할 영역 있지만, 프로그램의 크기가 커서 사용하지 못하는 기억 공간

        적재하지 못하고 남는 공간

 

 

기억 장치 계층 구조

    CPU [레지스터]

    캐시 기억 장치

    주기억 장치

    보조 기억 장치

 

 

주기억 장치 관리 전략

    배치 전략

        최초 적합 First Fit

            첫 번째 공백에 배치

            운영체제 다음부터가 시작점

        최적 적합 Best Fit

            가장 잘 맞는 공백 배치

        최악 적합 Worst Fit

            가장 큰 공백에 배치

 

    교체 전략

        LRU (Least Recently Used)

            참조된지 가장 오래된 페이지 교체

        LFU (Least Frequently Used)

            참조된 횟수가 가장 적은 페이지 교체

 

 

가상 기억 장치 사용 방식

    가상 기억 장치 관리 정책

        요구 반입

            새로 반입된 데이터나 프로그램 요구 시 적재

        예상 반입

            요구될 페이지를 미리 예측하여 적재

        배치

            주기억 장치 어느 곳에 위치

        교체

            어느 페이지를 새로운 페이지로 교체

        배당

            각 프로세스에게 몇 개의 페이지 프레임을 할당할 것인가

 

 

        페이징 기법

            페이지의 크기가 작으면 작을수록, 페이지 테이블 크기 증가

            작을 수록, 내부 단편화 줄어든다.

            클 수록, 입출력에 필요한 시간 최소화

            클 수록, 참조 정보와 무관한 정보까지 이동하는 문제 발생

 

            스레싱 Thrashing 방지

                스레싱 : 지나치게 페이지 부재가 발생

                    Working set 방법 사용

                        Working set : 자주 참조하는 페이지들의 집합

 

 

        세그먼테이션 기법

            외부 단편화만 발생

            각 세그먼트 크기는 다르다. 페이지의 크기는 같다.

            세그먼트 테이블 프로세스의 크기에 상관없이 길이가 같다.


디스크 관리

 

디스크 스케줄링

    FCFS

        모든 작업에 대해 공평성 유지

 

    SSTF (Shortest Seek Time First)

        탐색 거리가 짧은 거리 부터

 

    SCAN

        SSTF 개선

        진행 방향상의 가장 짧은 거리

 

    C-SCAN

        항상 바깥쪽에서 안쪽으로 거리가 짧은 거리 순

        응답시간 편차가 가장 작다

 

 

RAID

    RAID-0

        스트라이핑 기법

    RAID-1

        미러링 기법

    RAID-4

        블록 단위, 별도의 패리티 디스크 사용

    RAID-5

        패리티 블록들을 여러 디스크에 분산 저장하는 방식

 

 

등선 속도 방식 : 밀도 같다

    저장 용량의 손실이 없다.


분산 운영체제

 

    다중 처리기 Multi-Processor

        강결합 구조

            메시지를 사용하여 상호 통신

        여러 개의 CPU가 하나의 메모리를 공유

        운영체제 하나

 

    다중 컴퓨터

        약결합

            별도의 운영체제

        여러 개의 CPU 독립적인 메모리 사용

 

    주 프로세서, 종 프로세서

        주 프로세서는 입출력과 연산, 운영체제

        종 프로세서는 연산만

 

    분산 처리 시스템

        보안에 취약하다.

        소프트웨어 설계가 매우 어렵다.

        확장 용이, 연산 속도 향상, 자원과 데이터의 공유성

 

        연결 구조

            성Star형

                중앙 노드 / 중앙 집중

            계층 연결

                부모 노드 거쳐야만 통신 가능

            다중 접근 버스 연결 구조

                한 노드의 고장이 다른 노드에 거의 영향을 주지 않는다.

 

 

스레드

    경량 프로세스

    한 개의 프로세스는 여러 개의 스레드 가질 수 있다. \ 병행성 증대

    커널 스레드의 경우 운영체제에 의해 스레드 운용

    사용자 스레드의 경우 사용자가 만든 라이브러리에 의해 스레드 운용

    응용 프로그램의 처리율 향상

    독립적인 스케줄링의 최소 단위

 

    프로세스 내

        프로세스 내에 스레드 간 통신 - 커널 개입 필요로 하지 않기 때문에 더 효율적

        한 프로세스 내의 모든 스레드는 정적 영역 고유

 

    다중 프로세스

        각 프로세스는 각각 독립된 메모리 영역 할당(Code, Data, Stack, Heap)

 

    다중 스레드

        스택은 스레드마다 독립적으로 사용, 다른 스레드가 확인할 수 없다.

        Stack만 따로 할당 (Code, Data, Heap) 공유

 

 

다중 프로그래밍 방식에서 시간

    여러 개의 프로그램이 동시에 실행되는 것처럼

 

    응답 시간 Response Time

        작업이 처음 실행되기까지 걸린 시간 \ 반응 시간

 

    대기 시간 Waiting Time

        실제 작업을 CPU가 실행하지 않은 시간들을 더한 시간 \ 응답시간 포함

 

    실행 시간 Running Time

        CPU가 작업을 처리하는 시간

 

    반환 시간 Turn around Time

        실행 시간과 대기 시간 모두 더한 시간 \ 작업 완료될 때까지 걸린 시간

 

 

 

 

 

댓글