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

- Author: @mildsalmon
- Published: 2021-03-09
- Updated: 2021-04-12
- Source: http://blex.me/@mildsalmon/%ED%95%84%EA%B8%B0-%EA%B3%B5%EB%B6%80-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C
- Tags: 정보처리기사, 필기, 운영체제

---

# 1. 교착 상태

- 프로세스가 결코 일어나지 않을 사건을 기다리는 상태
- 자원이 부족한 상태

# 2. 교착 상태 발생 조건

##### 상호배제

- 자원을 최소 하나이상 비공유

##### 점유와 대기

- 자원을 최소한 하나 정도는 보유하고, 다른 프로세스에 할당된 자원을 얻으려고 기다리는 프로세스가 있어야 함

##### 비선점

- 자원은 강제로 빼앗을 수 없고, 자원을 점유하고 있는 프로세스가 끝나야 해제된다

##### 순환 대기

- 1, 2, 3번이 만족될 때 발생할 수 있는 결과

# 3. 교착 상태 해결 방법

##### 예방 (Prevention)

- 자원의 상호배제 조건 방지
- 점유와 대기 조건 방지
- 비선점 조건 방지
- 순환 대기 조건 방지

##### 회피 (Avoidance)

- 프로세스의 시작 중단
    - 프로세스의 요구가 교착 상태를 발생시킬 수 있다면 프로세스 시작을 중단한다
- 자원 할당 거부
    - 프로세스가 요청한 자원을 할당했을 때 교착 상태가 발생할 수 있다면 요청한 자원을 할당하지 않는다.

    ##### 은행가 알고리즘

    - 자원의 할당 허용 여부를 결정하기 전에 미리 결정된 모든 자원의 최대 가능한 할당량을 시뮬레이션하여 안전 여부를 검사
    - 안정 상태에 있을 때만 자원을 할당한다.

##### 탐지 (Detection)

- 은행가 알고리즘과 비슷
- 호출 빈도를 1시간마다 또는 CPU 이용률이 40%로 떨어질 때마다 호출하는 것으로 줄인다

##### 회복 (Recovery)

- 교착 상태에서 회복하려면 아래 두 알고리즘이 필요하다
    - 시스템 상태를 검사하는 교착 상태 탐지 알고리즘
    - 교착 상태에서 회복시키는 알고리즘

# 4. 스케줄링 알고리즘

##### 선점

- 선점 최소작업 우선 스케줄링 (SRT, Shortest Remanining Time)
- 우선 순위
- 라운드 로빈 (RR, Round-Robin)
- 다단계 큐 스케줄링 (MLQ, MultiLevel Queue)
- 다단계 피드백 큐 스케줄링 (MLFQ, MultiLevel Feedback Queue)

##### 비선점

- 선입선처리 스케줄링 (FCFS, First Come First Served)
- 최소작업 우선 스케줄링 (SJF, Shortest Job First)
- 우선 순위
- HRN (Highest Response-ratio Next)
    - 비선점 스케줄링
    - 에이징하는 방법
    - 최소작업 우선(SJF) 스케줄링의 약점이었던 긴 작업과 짧은 작업 간의 지나친 불평등을 어느 정도 보완
    - 우선 순위를 계산하여 수치가 높은 순으로 우선 순위가 부여

     ![](https://static.blex.me/images/content/2021/3/9/4_8MincP64tpP3Tobhg3bk.png)

# 5. UNIX SHELL

##### 환경 변수를 출력하는 명령어

- setenv
    - 환경 변수의 값을 설정하기 위해서 사용
- printenv
    - 환경 변수의 값을 확인하고 싶은 경우 사용
- set
    - 변수를 설정하기 위해 사용
- export
- env

# 6. 운영체제 주요 특징 및 고려사항

##### 고려 사항

- 신뢰도
- 성능
- 기술 지원
- 주변 기기
- 구축 비용

# 7. 페이지 대치 알고리즘

##### 선입선출 알고리즘(FIFO, First In First Out)

- 가장 간단한 알고리즘

    ![](https://static.blex.me/images/content/2021/3/9/4_Q9MvSUURCZiwj25sYqHA.png)

    ##### 문제점

    - 밸래디의 변이 현상 발생
        - 프레임 수가 증가하면 페이즈 부재 비율이 감소해야 하지만, 페이지 부재 비율이 증가하는 현상

##### 최적 페이지 대치 알고리즘 (OPT, OPTimal replacement algorithm)

- 앞으로 가장 오랫동안 사용하지 않을 페이지를 대치한다
- 이론상 제일 좋은 알고리즘
- 실현 불가능한 알고리즘

![](https://static.blex.me/images/content/2021/3/9/4_qrHTOI66b2AdtGHJMWER.png)

##### 최근 최소 사용 대치 알고리즘 (LRU, Least Recently Used)

- 과거 오랫동안 사용하지 않은 페이지를 대치
- 현실적으로 제일 좋은 알고리즘

    ![](https://static.blex.me/images/content/2021/3/9/4_1DAnWpo0yPXFR5u7syvD.png)

    ##### 카운터(계수기)를 이용한 순서 결정 방법

    - 각 페이지 테이블 항목에 사용 시간 레지스터를 연관시키고 프로세서에 논리 클록을 추가한 후 카운터 필드를 덧붙여 프레임 순서를 결정
    - 부하가 심함

    ![](https://static.blex.me/images/content/2021/3/9/4_T8JuYsOT0WUD6R7LA4da.png)

    ##### 스택을 이용한 순서 결정 방법

    - 최근에 사용한 페이지를 맨 위로 올림
    - 밀어내기 방식

    ![](https://static.blex.me/images/content/2021/3/9/4_UKb8RIjOID6frMir9An6.png)

# 8. 프로세스 상태 변화

- 준비 → 실행
    - dispatch
- 실행 → 준비
    - timeout
- 실행 → 대기(보류)
    - block
- 대기(보류) → 준비
    - wakeup

![](https://static.blex.me/images/content/2021/3/9/4_VMVf8Q7vdQTPjEQkROiE.png)

# 9. 운영체제 관련 요구사항 식별 시 고려사항

### A. 가용성

- 시스템의 장시간 운영으로 인해 발생할 수 있는 운영체제 고유의 장애 발생 가능성
- 메모리 누수로 인한 성능 저하 및 재가동
- 보안상 발견된 허점을 보완하기 위한 지속적인 패치 설치로 인한 재가동
- 운영체제의 결함 등으로 인한 패치 설치를 위한 재가동

### B. 성능

- 대규모 동시 사용자 요청에 대한 처리
- 대규모 및 대용량 파일 작업에 대한 처리
- 지원 가능한 메모리 크기 (32bit, 64bit)

### C. 기술 지원

- 제작업체의 안정적인 기술 지원
- 여러 사용자들 간의 정보 공유
- 오픈 소스 여부(Linux)

### D. 주변 기기

- 설치 가능한 하드웨어
- 여러 주변기기 지원 여부

### E. 구축 비용

- 지원 가능한 하드웨어 비용
- 설치할 응용 프로그램의 라이선스 정책 및 비용
- 유지관리 비용
- 총 소유 비용(TCO)

# 10. 배포용 파일 형식

##### msi

- Window용 패키지 형식

##### dmg

- Mac OS용 패키지 형식

##### jar

- java 응용 소프트웨어나 라이브러리를 배포하기 위한 패키지 형식

##### war

- java Servlet, java Class, xml 및 웹 애플리케이션 서비스를 제공하기 위한 패키지 형식

##### ear

- jar와 war를 묶어 하나의 애플리케이션 서비스를 제공할 수 있는 패키지 형식

##### apk

- 안드로이드용 앱 패키지 형식

##### ipa

- iOS용 앱 패키지 형식

# 11. UNIX

- 시분할 시스템을 위해 설계된 대화식 운영체제로 소스가 공개된 개방형 시스템이다.
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스간 호환성이 높다
- 크기가 작고 이해하기가 쉽다
- 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다
- 많은 네트워킹 기능을 제공하므로 통신망(Network)관리용 운영체제로 적합하다
- 트리 구조의 파일 시스템을 갖는다
- 전문적인 프로그램 개발에 용의하다
- 다양한 유틸리티 프로그램들이 존재한다

# 12. 오버레이(overlay)

- 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
- 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램을 실행한다.
- 프로그램이 실행되면서 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램의 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 중첩(overlay)하여 적재한다
- 프로그램을 여러 개의 조각으로 분할하는 작업은 프로그래머가 수행해야 하므로 프로그래머는 시스템 구조나 프로그램 구조를 알아야 한다.

# 13. Windows 기본 명령어

### A. DIR

- 파일 목록을 표시함

### B. COPY

- 파일을 복사함

### C. TYPE

- 파일의 내용을 표시함

### D. REN

- 파일의 이름을 변경함

### E. DEL

- 파일을 삭제함

### F. MD

- 디렉터리를 생성함

### G. CD

- 디렉터리의 위치를 변경함

### H. CLS

- 화면의 내용을 지움

### I. ATTRIB

- 파일의 속성을 변경함

### J. FIND

- 파일을 찾음

### K. CHKDSK

- 디스크 상태를 점검함

### L. FORMAT

- 디스크 표면을 트랙과 섹터로 나누어 초기화함

### M. MOVE

- 파일을 이동함

# Notion 정리본

[https://www.notion.so/mildsalmon/5-0f456b80c49d4bdc8849a20d12201d6d](https://www.notion.so/mildsalmon/5-0f456b80c49d4bdc8849a20d12201d6d)
