navis

운영체제 (기말 준비) 본문

방송통신대 컴퓨터과학과

운영체제 (기말 준비)

menstua 2024. 5. 26. 12:46
728x90

1강: 운영체제 개요

운영체제

  • 정의: 컴퓨터 시스템 자원을 관리하고 서비스 제공하는 시스템 소프트웨어.
  • 모드
    • 커널 모드: 하드웨어 직접 제어 가능.
    • 사용자 모드: 하드웨어 직접 제어 불가, 시스템 호출 필요.

운영체제 구성요소

  • 프로세스 관리자: 프로세스 생성, 스케줄링, 종료.
  • 메모리 관리자: 메모리 할당, 해제, 가상 메모리 관리.
  • 장치 관리자: 입출력 장치 제어, 드라이버 관리.
  • 파일 관리자: 파일 생성, 수정, 삭제, 접근 제어.

운영체제 유형

  • 일괄처리: 작업을 모아서 처리.
  • 시분할: 여러 사용자가 동시에 시스템 사용.
  • 실시간: 즉각적인 응답 요구.
  • 분산 운영체제: 여러 컴퓨터가 협력하여 작업 수행.

2강: 프로세스와 쓰레드

프로세스

  • 정의: 실행 중인 프로그램, 자원 할당됨 (CPU, 메모리 등).
  • 프로세스 제어 블록 (PCB): 프로세스 상태, 프로그램 카운터, CPU 레지스터 등 포함.
  • 프로세스 상태: 생성, 준비, 실행, 대기, 종료.

쓰레드

  • 정의: 프로세스 내에서 실행 단위, 다중 쓰레드로 병행 처리 가능.
  • 유형: 사용자 수준 쓰레드, 커널 수준 쓰레드.

3강: 스케줄링

스케줄링 단계

  • 상위단계: 작업 스케줄링.
  • 중간단계: 메모리 스케줄링.
  • 하위단계: CPU 스케줄링.

스케줄링 정책

  • 선점 스케줄링: 인터럽트 가능, CPU 강제로 빼앗음.
  • 비선점 스케줄링: 인터럽트 불가, 프로세스가 자발적으로 CPU 반납.

알고리즘

  • FCFS (First-Come, First-Served): 도착 순서대로 처리.
  • SJF (Shortest Job First): 가장 짧은 작업 먼저 처리.
  • SRT (Shortest Remaining Time): 남은 시간이 가장 적은 작업 먼저 처리.
  • RR (Round Robin): 시간 할당량을 이용한 순환 방식.
  • HRN (Highest Response Ratio Next): 응답 비율이 높은 작업 우선.
  • 다단계 피드백 큐: 여러 큐를 사용하여 프로세스 우선순위 조정.

4강: 병행성

병행성

  • 정의: 여러 프로세스/쓰레드가 동시에 수행됨.

임계영역

  • 정의: 공유 자원에 접근하는 코드 영역.

상호배제

  • 정의: 여러 프로세스가 동시에 임계영역에 접근하지 않도록 함.

동기화

  • 정의: 프로세스 간 처리 순서를 결정.

세마포어

  • 정의: P와 V 연산을 통해 상호배제 및 동기화 문제 해결.

5강: 상호배제 문제

생산자-소비자 문제

  • 해결: 세마포어를 이용해 생산자와 소비자 간의 상호배제 및 동기화 문제 해결.

판독기-기록기 문제

  • 해결: 판독기와 기록기 간의 상호배제 필요, 세마포어 이용.

프로세스 간 통신

  • 방법: 공유 메모리, 메시지 전달 (직접, 간접).

6강: 교착상태

교착상태

  • 정의: 프로세스들이 서로 대기 상태로 진행 불가.

필요조건

  • 상호배제: 자원이 한 번에 한 프로세스만 사용할 수 있음.
  • 점유대기: 자원을 점유한 상태에서 다른 자원을 기다림.
  • 비선점: 자원을 강제로 빼앗을 수 없음.
  • 환형대기: 프로세스 간 순환 대기 상태.

자원할당 그래프

  • 사용: 교착상태 발생 가능성 확인.

처리 기법

  • 예방: 교착상태 발생 조건을 사전에 차단.
  • 회피: 자원 사용 정보를 사전에 활용.
  • 탐지 및 복구: 교착상태 발생 시 희생자 선택 후 중지 또는 자원 선점.

7강: 교착상태 회피 및 탐지

회피 기법

  • 은행원 알고리즘: 안전 상태 확인 후 자원 할당.

탐지 및 복구

  • 탐지: 교착상태 발생 여부 탐지.
  • 복구: 교착상태 발생 시 프로세스 중지 또는 자원 선점.

8강: 메모리 관리

기억장치 구성

  • 계층적 구조: 레지스터, 캐시, 메인 메모리, 보조 기억장치.

연속 메모리 할당

  • 단일 프로그래밍: 하나의 프로세스가 전체 메모리 사용.
  • 다중 프로그래밍: 여러 프로세스가 메모리 공유.

고정 분할 방식

  • 문제: 내부 단편화 발생.

동적 분할 방식

  • 문제: 외부 단편화 발생.
  • 해결: 통합과 집약 기법.

메모리 배치기법

  • 최초 적합: 첫 번째로 맞는 빈 공간에 배치.
  • 후속 적합: 이전 검색 위치 이후의 첫 번째 빈 공간에 배치.
  • 최적 적합: 가장 작은 빈 공간에 배치.
  • 최악 적합: 가장 큰 빈 공간에 배치.

9강: 가상 메모리

가상 메모리

  • 정의: 물리적 메모리보다 큰 기억 공간 사용 가능.

주소 변환

  • 정의: 가상 주소를 실주소로 변환.

기법

  • 페이징: 고정 크기 페이지 단위 관리.
  • 세그먼테이션: 다양한 크기의 세그먼트 단위 관리.

페이지 호출 기법

  • 요구 페이지 호출: 필요한 페이지만 호출.
  • 예상 페이지 호출: 필요한 페이지를 미리 예상하여 호출.

10강: 페이지 교체

페이지 교체 알고리즘

  • FIFO: 가장 먼저 들어온 페이지를 교체.
  • LRU: 가장 오랫동안 사용하지 않은 페이지를 교체.
  • LFU: 가장 적게 사용된 페이지를 교체.
  • 2차 기회: FIFO에 참조 비트를 추가하여 교체 결정.

국부성

  • 정의: 특정 부분을 집중적으로 참조하는 특성.

워킹 세트

  • 정의: 최근 참조한 페이지 집합 유지.

11강: 장치 관리

장치 관리

  • 유형: 전용 장치, 공유 장치, 가상 장치.

입출력 처리 방법

  • 프로그램 입출력: CPU가 직접 입출력 처리.
  • 인터럽트 입출력: 입출력 완료 시 인터럽트 발생.
  • DMA (Direct Memory Access): CPU 개입 없이 직접 메모리 접근.

버퍼링

  • 단일 버퍼링: 하나의 버퍼 사용.
  • 이중 버퍼링: 두 개의 버퍼 사용.
  • 순환 버퍼링: 여러 개의 버퍼를 순환하며 사용.

스풀링

  • 정의: 입출력 속도 향상을 위해 디스크에 임시 저장.

12강: 디스크 관리

디스크 스케줄링

  • 목표: 탐구 시간을 최소화.

알고리즘

  • SSTF (Shortest Seek Time First): 가장 가까운 트랙부터 탐구.
  • SCAN: 끝까지 갔다가 반대로 탐구.
  • C-SCAN (Circular SCAN): 끝까지 갔다가 처음으로 돌아와 탐구.
  • LOOK: 데이터가 있는 부분까지만 탐구.
  • C-LOOK: 데이터가 있는 부분까지만 탐구하고 처음으로 돌아와 탐구.
  • SLTF (Shortest Latency Time First): 회전 지연 시간 최소화.

파일 관리자

  • 기능: 파일 생성, 수정, 삭제, 공유, 백업, 보호.

13강: 분산 시스템

분산 시스템

  • 정의: 네트워크를 통한 프로세서 집합.

장점

  • 자원 공유: 여러 시스템 자원 공유 가능.
  • 성능 향상: 병렬 처리로 성능 향상.
  • 신뢰성: 시스템 고장 시 다른 시스템이 대체 가능.
  • 통신 편리성: 원격 통신 및 협업 가능.

분산 파일 시스템

  • 정의: 원격 파일과 로컬 파일 구별 없이 사용 가능.

분산 메모리

  • 정의: 네트워크를 통한 메모리 공유.

원격 프로시저 호출 (RPC)

  • 정의: 원격 프로시저를 호출하여 실행.

14강: 운영체제 보안

보안 목표

  • 기밀성: 정보의 비인가 노출 방지.
  • 가용성: 인가된 사용자가 언제든지 접근 가능.
  • 무결성: 정보의 비인가 변경 방지.

정보 침해 위협

  • 가로채기: 정보 탈취.
  • 흐름 차단: 정보 흐름 방해.
  • 변조: 정보 수정.
  • 위조: 정보 위조.

접근제어

  • 임의적 접근제어 (DAC): 소유자가 접근 권한 결정.
  • 강제적 접근제어 (MAC): 중앙 관리자가 접근 권한 결정.
  • 역할 기반 접근제어 (RBAC): 역할에 따라 접근 권한 결정.

암호 시스템

  • 비밀키 암호화: 하나의 비밀키로 암호화 및 복호화.
  • 공개키 암호화: 공개키로 암호화, 비밀키로 복호화.

보안 모델

  • 벨-라파듈라 모델: 기밀성 중심.
  • 비바 모델: 무결성 중심.

15강: 특수 목적 운영체제

리눅스 커널

  • 구조: 일체형 구조, 소스 코드 공개.

임베디드 시스템

  • 정의: 특정 기능 수행, 하드웨어와 소프트웨어 결합.

실시간 운영체제

  • 정의: 마감 시간 내에 결과를 얻기 위한 시스템.

Windows

  • 구조: GUI 기반, NT 구조.
  • Android: 리눅스 기반 운영체제.