Part 11. 응용 SW 기초 기술 (운영 체제)

Codren·2021년 4월 13일

정보처리기사 실기 Part 11. 응용 SW 기초 기술 (운영 체제)


Section 1. 운영 체제

1. 운영 체제 (OS)

  • " SW / HW 자원 관리 및 공통 서비스를 제공하여 사용자와의 인터페이스 기능을 수행하는 시스템 소프트웨어 "



2. Android

  • " 구글이 공개한 리눅스 커널 기반의 개방형 모바일 운영체제로써 자바와 코틀린 언어로 개발 가능 "



3. 운영 체제 성능 평가 항목 (목적)

    ① 처리 능력 향상 (Throughput)
    ② 반환 시간 감소 (Turnaround Time)
    ③ 신뢰성 향상 (Reliability)
    ④ 가용성 향상 (Availability)



4. 운영 체제 방식

    ① 일괄 처리 시스템 - 유사한 성격의 작업을 한꺼번에 모아서 처리
    ② 다중 프로그래밍 시스템 - 여러 프로그램들이 주기억 장치에 적재되어 번갈아 실행
    ③ 시분할 시스템 - 사용자 관점에서 프로세서를 일정 시간 주기로 번갈아 점유
    ④ 다중 처리 시스템 - 여러 개의 CPU로 여러 프로그램을 동시에 처리
    ⑤ 실시간 처리 시스템 - 작업 발생 시점에 즉각 처리하여 정해진 시간내에 수행
    ⑥ 다중 모드 시스템 - 여러 처리 시스템을 한 시스템에서 모두 제공
    ⑦ 분산 처리 시스템 - 물리적으로 떨어진 여러 컴퓨터가 통신망(네트워크)으로 연결되어 상호 교환



5. 운영 체제 방식 발달 과정

  • 일괄 처리 -> 시분할, 다중 프로그래밍, 실시간 -> 다중 모드 -> 분산 처리



Section 2. 메모리

1. 주 기억 장치 (메인메모리)

  • " CPU가 직접 접근하여 처리할 수 있는 기억장치로 현재 수행중인 프로그램 및 데이터가 적재됨 "
  • RAM, ROM



2. 캐시 메모리

  • " 주기억장치와 CPU의 속도 차이를 줄여 데이터 접근 처리의 효율을 높이기 위한 목적으로 사용 "



3. 보조 기억 장치

  • " 주기억장치의 부족한 용량 문제를 해결해주는 외부에 설치된 대용량 기억장치 "



4. 가상 메모리

  • " 보조기억장치를 주기억장치처럼 사용하는 것 "
  • 페이징 기법과 세그멘테이션 기법



5. 기억 장치 관리 전략

    ① 반입 전략 (Fetch) - 요구 반입, 예상 반입
    ② 배치 전략 (Placement) - 최초(First) 적합, 최적(Best) 적합, 최악(Worst) 적합
    ③ 교체 전략 (Replacement) - FIFO, OPT, LRU, LFU, NUR, SCR
    ④ 할당 전략 (Allocation) - 페이징, 세그멘테이션



6. 단편화 (Fragmentation)

  • " 주기억장치에서 빈번하게 기억 장소가 할당되고 반납됨에 따라 기억장소들이 조각들로 나눠지는 현상 "
  • 내부 단편화 - " 분할된 영역이 할당 작업보다 큰 상황에서 남게되는 빈 공간 "
  • 외부 단편화 - " 분할된 영역이 할당 작업보다 작은 상황에서 할당이 불가능하게 되어 남게 되는 빈 공간 "



7. 단편화 해결 방법

  • 통합 (Coalescing) - " 인접한 낭비 공간들을 모아서 하나의 큰 기억 공간을 만듬 "
  • 압축 (Compaction) - " 인접 또는 서로 떨어져 있는 낭비 공간들을 모아 하나의 큰 기억 공간을 만듬 "



8. 페이징 (Paging)

  • " 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후, 나눠진 프로그램(페이지)을 동일한 크기로 나눠진 주기억장치공간(프레임)에 적재하여 실행 시키는 기법 "
  • 페이지 맵 테이블 - 논리적 주소와 물리적 주소 연결 정보를 기록한 테이블
  • 페이지크기 ↑ - 페이지 맵 테이블 크기 ↓, 단편화 ↑, 디스크 접근 횟수 ↓, 전체 입출력 시간 ↓
  • 페이지크기 ↓ - 페이지 맵 테이블 크기 ↑ , 단편화 ↓, 디스크 접근 횟수 ↑, 전체 입출력 시간 ↑
  • 내부 단편화



9. 세그멘테이션 (Segmentation)

  • " 주기억장치의 공간을 적재될 프로그램의 크기에 따라 가변적으로 나누어서 공간 할당하는 기법 "
  • 세그먼트 맵 테이블
  • 외부 단편화



10. 페이지 교체 (Page Replacement) 알고리즘

    ① FIFO - 가장 먼저 적재된 페이지 교체
    ② OPT - 이후에 가장 오랫동안 사용되지 않을 페이지 교체
    ③ LRU - 가장 오랫동안 사용되지 않았던 페이지 교체
    ④ LFU - 참조된 횟수가 가장 적은 페이지 교체
    ⑤ NUR - 최근에 사용하지 않은 페이지 교체 (Reference, Dirty bit 참고)
    ⑥ SCR - FIFO 순으로 LRU 근사 알고리즘



11. 지역성 (Locality)

  • " 프로세스가 실행되는 동안 특정 일부 페이지(지역)만 집중적으로 참조하는 경향 "
  • 시간 지역성 (Temporal) - 최근에 참조된 기억장소가 가까운 장래에도 참조
  • 공간 지역성 (Spatial) - 참조된 기억장소의 주변 기억장소가 참조



12. 워킹셋 (Working Set)

  • " 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합 "



13. 스레싱 (Thrashing)

  • " 페이지 부재가 계속 발생되어 프로세스 수행 시간보다 페이지 교체 시간이 더 많이 드는 현상 "



14. 페이지 부재 (Page Fault)

  • " 참조하려는 페이지가 주기억장치에 없는 현상 "



Section 3. 스케줄링 (Scheduling)

1. 프로세스

  • " 운영체제가 관리하는 실행의 단위로써 주기억장치에 적재되어 실행중인 프로그램을 뜻함 "



2. 프로세스 제어 블록 (PCB)

  • " 운영체제가 프로세스에 대한 정보를 저장해 놓는 저장 장소 "
  • 현재 상태, 우선순위, CPU 레지스터 정보, 할당 자원, 고유 식별자(pid), 입출력 상태 등등



3. 프로세스 상태 전이

  • ready(준비), running(실행), waiting(대기)
  • dispatch, block, wakeup



4. 스레드(Thread)

  • " 프로그램 제어의 흐름을 의미하는 실행 기본 단위이며 경량 프로세스라고도 한다 "



5. 프로세스 스케줄링 선점 / 비선점

  • 비선점 (Non-Preemptive) - FCFS, SJF, HRN, 기한부, 우선순위
  • 선점 (Preemptive) - SRT, RR, MLQ, MLFQ
  • 에이징 (Aging) - 기아현상 (Starvation) 제거



6. 문맥교환 (Context Switching)

  • " 현재 CPU를 사용하고 있는 프로세스의 상태 정보를 저장하고 실행하려고 하는 프로세스의 상태 정보를 가져오거나 복구하는 작업 "



7. 상호배제 (Mutual Exclusion)

  • " 두 개 이상의 프로세스들이 동시에 임계구역(공유 데이터 부분)에 접근하는 것을 막는 기법 "
  • 세마포어 (Semaphore), 모니터(Monitor)



8. 교착 상태 (DeadLock)

  • " 두 개 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 대기하는 상태 "



9. 교착 상태 발생 조건

    ① 상호 배제 (Mutual Exclusion)
    ② 점유 및 대기 (Hold and Wait)
    ③ 비선점 (Non-Preemptive)
    ④ 환형 대기 (Circular Wait)



10. 교착 상태 해결 방법

    ① 예방 (Prevention)
    ② 회피 (Avoidance)
    ③ 발견 (Detection)
    ④ 회복 (Recovery)




Section 4. 기타

1. 환경 변수 (Environment variable)

  • " 운영체제가 사용하는 공통적인 변수로써 동적인 값들의 모임 "
  • 시스템 환경변수와 사용자 환경변수 존재
  • Windows : set / UNIX, Linux : set, env, printenv



2. Windows 환경 변수

  • %PATH%, %TEMP%, %HOMEPATH% 등



3. Linux 환경 변수

  • $PATH, $PWD, $HOME, $LANG, $USER 등



4. UNIX 특징

  • 고급 프로그래밍 언어인 C언어로 커널까지 작성
  • 디렉토리 구조는 트리 구조, 계층적 파일 시스템
  • 멀티태스킹 및 멀티유저 운영체제
  • 대화식 운영체제, 높은 이식성과 확장성



5. UNIX 파일 시스템

    ① 부트 블록 - 부팅에 필요한 코드 저장
    ② 슈퍼 블록 - 전체 파일 시스템에 대한 정보 저장
    ③ I-node 블록 - 각 파일에 대한 정보를 저장
    ④ 데이터 블록 - 실제 데이터가 저장되는 공간



6. UNIX 주요 명령어

    ① fork - 프로세스 생성 및 복제
    ② exec - 새로운 프로세스 수행
    ③ wait - 자식 프로세스가 종료 될 때까지 부모 프로세스 대기
    ④ getpid, getppid - 프로세스 id를 얻음
    ⑤ mount - 기존 파일 시스템에 새로운 파일 시스템을 서브 디렉터리에 연결
    ⑥ unmount - 마운팅된 파일 시스템에서 해제
    ⑦ chdir - 디렉터리의 위치 변경
    ⑧ cp - 파일 복사
    ⑨ mv - 파일 이동
    ⑩ rm - 파일 삭제
    ⑪ cat - 파일 내용을 화면에 표시
    ⑫ chmod - 파일의 접근 권한을 지정
    ⑬ chown - 파일 소유자 변경



7. 커널 (Kernel)

  • " 운영체제의 중심부에 해당하며 주기억장치에 적재된 후 상주하면서 실행된다 "
  • 90% C언어 10% 어셈블리어



8. 쉘 (Shell)

  • 사용자의 명령어를 해석하여 사용자와 커널 사이 인터페이스 역할을 하는 명령어 해석기 "
  • Shell Script 사용



9. 유틸리티 (Utility)

  • " 사용자의 편의를 위한 프로그램을 제공 "
  • 문서 편집기, 컴파일러 등등

0개의 댓글