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

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) 스케줄링의 약점이었던 긴 작업과 짧은 작업 간의 지나친 불평등을 어느 정도 보완
    • 우선 순위를 계산하여 수치가 높은 순으로 우선 순위가 부여

5. UNIX SHELL

환경 변수를 출력하는 명령어
  • setenv
    • 환경 변수의 값을 설정하기 위해서 사용
  • printenv
    • 환경 변수의 값을 확인하고 싶은 경우 사용
  • set
    • 변수를 설정하기 위해 사용
  • export
  • env

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

고려 사항
  • 신뢰도
  • 성능
  • 기술 지원
  • 주변 기기
  • 구축 비용

7. 페이지 대치 알고리즘

선입선출 알고리즘(FIFO, First In First Out)
  • 가장 간단한 알고리즘

    문제점
    • 밸래디의 변이 현상 발생
      • 프레임 수가 증가하면 페이즈 부재 비율이 감소해야 하지만, 페이지 부재 비율이 증가하는 현상
최적 페이지 대치 알고리즘 (OPT, OPTimal replacement algorithm)
  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 대치한다
  • 이론상 제일 좋은 알고리즘
  • 실현 불가능한 알고리즘

최근 최소 사용 대치 알고리즘 (LRU, Least Recently Used)
  • 과거 오랫동안 사용하지 않은 페이지를 대치

  • 현실적으로 제일 좋은 알고리즘

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

    스택을 이용한 순서 결정 방법
    • 최근에 사용한 페이지를 맨 위로 올림
    • 밀어내기 방식

8. 프로세스 상태 변화

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

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

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.