[정보처리기사]3단원 운영체제 오답노트


3단원 운영체제 오답노트

1장. 시스템 소프트웨어의 구성

  • PCB : 프로세스에 할당된 자원에 대한 정보
    • 프로세스 상태
    • 프로그램 카운터 (Program Counter)
    • 프로세스 우선순위
    • 중앙처리장치 레지스터 보관 장소
    • 프로세스 고유 구별자
    • 부모, 자식 프로세스에 대한 포인터
    • 부모 프로세스와 자식 프로세스는 PCB 를 공유 X
    • 프로세스의 사용빈도 X
    • 프로세스의 생성 정보 X
    • 파일 할당 테이블 X
    • 할당되지 않은 주변장치의 상태정보 X

  • 시분할 시스템 (Time Sharing)
    • 여러명의 사용자가 사용하는 시스템에서
    • 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리
    • 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 줌
    • 하드웨어를 능률적으로 사용
    • 라운드 로빈 방식
    • CPU는 작업시간량 (Time Slice, Quantum) 을 나누어 정해진 시간동안 번갈아가며 처리
      • 처리기를 작업시간량 (Time Slice) 으로 나누는것 X
      • 둘 이상의 CPU X
    • 다중프로그래밍을 결합해 대화식 처리(모든 작업이 동시진행)가 가능

  • 크로스 어셈블러 : 다른 컴퓨터를 이용한 어셈블리어 번역

  • 클러스터 (Cluster) : 전체 컴퓨터들이 상호연결되어 협력하면서 하나의 컴퓨팅 지원인 것처럼 동작

  • 로더 (Loader)

    보조기억장치로부터 주기억장치에 올려놓는 기능
    
    • 기능 LARLL
      • 할당 (Allocation) : 공간확보 (주체는 프로그래머)
      • 연결 (Linking) : (주체는 프로그래머)
      • 재배치 (Relocation) : (주체는 언어번역 프로그램)
      • 적재 (Loading) : (주체는 로더)
    • 종류
      • Compile And Go Loader
        • 별도의 로더 없음
        • 언어번역 프로그램이 로더역할 담당
      • 절대 로더 (Absolute Loader) 절대적인
        • 로더의 역할 축소
        • 기억장소 할당 및 연결을 프로그래머가 직접 지정 (매우 어려움)
        • 목적프로그램을 기억장소에 적재시키는 역할만 담당
        • 한번 지정한 주기억장소의 위치는 변경이 힘듬
      • 동적 적재 로더 (Dynamic Loading Loader)
        • 실행 시 필요한 일부분만을 적재하는 로더

  • 프로세스
    • 실행중인 프로그램
    • PCB를 가진 프로그램
    • 프로시저가 활동중인 것
    • 비동기적 행위를 일으키는 주체
    • 오류에 대한 조치는 X

  • 운영체제
    • 일종의 소프트웨어 장치
    • 사용자와 시스템 간 인터페이스
    • 기능
      • 입출력 장치 및 프로세스 관리
      • 스케줄링 (디스크 스케줄링은 X)
      • 자원공유
      • 자원보호
      • 프로세스 생성 제거 X
      • 중지 및 수행 X
      • 언어번역 X
      • JAVA X
      • 유지관리 X
      • 입출력 주력 X
    • 목적
      • 처리능력 - Throughput - 일정시간내 시스템이 처리하는 일의 양
      • 신뢰도 - Reliability
      • 사용 가능도 향상 - Availability - 사용자가 요구할 때 어느정도 신속하게 지원하는가
      • 변환 시간 (Turn Around Time) 단축
    • 발달 과정 일시다분
      1. 일괄처리 시스템
      2. 다중처리, 시분할, 실시간 시스템
      3. 다중모드 시스템
      4. 분산처리 시스템
    • 인터프리터
      • BASIC, SNOBAL

  • 제어 프로그램

    다른 업무로의 이행을 자동적으로 수행하기 위한 준비 및 처리 완료를 담당하는 기능
    
    • 감시 프로그램
    • 작업 제어 프로그램
    • 작업(데이터) 관리 프로그램 : 자료 전송, 파일의 조작 및 처리 담당
    • 외에는 처리 프로그램

  • 다중 처리 (Multi-processing) 시스템
    • CPU를 여러개 두고 동시에 프로그램을 수행

2장. 스레드

  • 프로세스의 주요 상태
    • 준비 (Ready)
    • 실행 (Running)
    • 대기 (Waiting)
    • 종료 (Exit)

  • 적응 기법의 개념을 적용 : MFQ

  • 라운드 로빈 (Round Robin, RR) 은 프로세스들 사이에 우선순위를 두지 않고 시간단위 (Time Slice/Quantum) 으로 CPU를 할당
    • Time Sharing System 을 위해 고안된 방식
    • 시간 할당량이 커지면 FCFS 스케줄링과 같은 효과
    • 시간 할당량이 작아지면 프로세스 문맥교환 (오버헤드) 이 자주 일어남

  • 위 문제 답 4번임 (하나의 프로세스에 여러개의 스레드가 존재할 수 있음)

  • 스레드

    • 하나의 프로세스 내에서 시스템의 여러 자원을 할당받아 실행하는 프로그램 단위
    • 오버헤드 (프로세스의 생성 및 문맥교환)가 줄어 운영체제 성능 개선
    • 동일 프로세스 환경에서 독립적인 다중 수행 가능
    • 사용자 수준의 스레드는 사용자의 라이브러리를 사용하여 운용
      • 커널에 의한 스레드 운용 X
    • 하나의 프로세스에는 여러개의 스레드가 존재 = 병행성 증진
    • 스레드는 독립된 제어흐름을 가지며 고유 레지스터 사용
      • 레지스터를 모든 스레드들이 공유 X
    • 프로세스 내부에만 존재

  • HRN 방식
    • SJF 를 보완하기 위한 기법
    • 우선순위 계산식 : (대기시간 + 서비스시간) / 서비스시간
      • 클수록 우선순위가 높음

  • SJF 정책
    • 실행시간이 가장 짧은 프로세스에게 먼저 CPU를 할당
    • 실행시간 주정치가 가장 작은 작업을 먼저 실행
    • 제출시간인지 도착시간인지 정확히 확인할 것
      • 제출시간이라면 실행시간-제출시간

  • 선점 기법
    • 우선순위가 높은 프로세스를 빠르게 처리
    • 대화식 시분할 시스템 (빠른 응답시간을 요구하는) 에 사용
    • 선점으로 인한 많은 오버헤드가 초래
    • 인터럽트용 타이머 (선점을 위해 시간 배당을 위한) 클럭이 필요
    • 종류
      • SRT
      • RR
      • 다단계 큐
      • 다단계 피드백 큐 (MFQ)
      • 선점 우선순위
  • 비선점 스케줄링 기법
    • 이미 할당된 CPU를 다른 프로세스가 강제로 뺏어 사용할 수 없는 공정한 기법
    • 응답 시간 예측이 용이
    • 종류
      • FIFO(FCFS)
      • SJF
      • 우선순위
      • HRN
      • 기한부

  • FCFS (=FIFO)
    • 먼저 도착한 것을 먼저 처리
    • 최대 평균 반환시간
      • (12+(12+9)+(12+9+6)) / 3 = 20
    • 최소 평균 반환시간
      • (6+(6+9)+(6+9+12)) / 3 = 16

3장

  • 기억장치 관리 전략 FPR

    • 반입 (Fetch) 전략
    • 주기억장치로 언제 적재할 것인지 결정
    • 배치 (Placement) 전략
    • 최초 적합 (First Fit)
    • 최적 적합 (Best Fit)
    • 최악 적합 (Worst Fit)
    • 10K 프로그램
      • First Fit : 15K인 영역2
      • Best Fit : 10K인 영역3
      • Worst Fit : 30K인 영역4
    • 10K 프로그램이지만 각 상태가 존재할 경우
      • 사용 중인 영역은 건너뛰고
      • 영역 크기가 프로그램보다 작으면 건너뛰고
      • 15K인 영역C에서 First Fit 이 사용됨
    • 내부 단편화
      • 저장되는 공간이 더 커서
      • 저장된 내용을 뺀 나머지 부분
    • 외부 단편화
      • 저장되는 내용이 공간보다 더 커서
      • 그 공간을 사용하지 못한 부분
    • 각각 사용할때에는 최초, 최적, 최악을 하나의 경우로 생각하면 됨
    • 교체 (Replacement) 전략
    • 페이지교체 알고리즘을 이용

  • 교착상태(DeadLock)

    자원을 점유한 상태에서 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
    
    • 발생 (필요 충분) 조건

      • 상호 배제 (Mutual Exclusion)
        • 한번에 한 프로세스만 자원 사용
      • 점유와 대기 (Hold & Wait)
        • 다른 자원이 할당되기를 기다리는동안
        • 이미 확보한 자원을 계속 보유하고 있음
      • 비선점 (Non-Preemptive)
        • 강제로 빼앗을 수 없음
      • 환영 대기 (Circular Wait)
        • 서로간의 요구관계가 회전
    • 해결 방법

      • 예방 (Prevention) 기법
        • 상호 배제 부정
        • 점유 및 대기 부정
          • 프로세스가 실행되기 전
          • 필요한 모든 자원을 할당하여
          • 프로세스 대기를 없애거나
          • 자원이 점유되지 않은 상태에서만
          • 자원을 요구하도록 함
        • 비선점 부정
        • 환영대기 부정
      • 회피 (Avoidance) 기법
        • 교착상태가 발생하면 적절히 피해나가는 방법
        • 주로 은행원 Banker 알고리즘에 사용
        • 불안전 상태 (교착상태가 발생할 수 있는 상태)
          • 모든 시스템이 교착상태는 아님
        • 교착상태를 완전히 배제하진 않음
        • 사전에 교착상태를 배제하지 않음
      • 발견 (Detection) 기법
        • 시스템에 교착상태가 발생했는지 점검
          • 이후 교착상태가 있는 프로세스와 자원 발견
        • 자원할당 그래프를 이용
      • 회복 (Recovery) 기법
        • 교착상태의 프로세스에 할당된 자원을 선점
        • 프로세스나 자원을 회복

  • 임계 구역
    • 임계 구역에는 하나의 프로세스만 접근
    • 작업은 신속하게
    • 인터럽트 발생은 하지 않음

  • Test & Set 알고리즘 = 특수한 하드웨어 자원이 필요한 상호배제 기법

4장

  • NUR (Not-Used-Recently) 안참조변

    • 참조도 안되고 변형도 안된 페이지를 우선적으로 교체함

    • 참조비트(Reference Bit) 와 변형비트(Modified Bit)를 이용

      참조 비트변형 비트내용
      00가장 먼저 페이지 교체
      11가장 나중에 페이지 교체

  • 내부 단편화
    • 저장되는 공간이 더 커서
    • 저장된 내용을 뺀 나머지 부분
  • 외부 단편화
    • 저장되는 내용이 공간보다 더 커서
    • 그 공간을 사용하지 못한 부분
  • 60K와 160K가 사용하지 못했으므로, 해당 공간의 크기 (50K + 120K) 를 계산하면 되므로 170K 이다
  • Worst Fit 이므로, 40K-17K = 23K

  • 세그먼테이션 (Segmentation)
    • 고유한 이름과 크기를 갖음
    • 작업의 크기를 서로 다르게 나누고
    • 기억장소 보호 방법으로
    • 기억장치 보호키를 사용
    • 외부 단편화 발생 가능
    • 세그먼트 맵 테이블 필요
      • 페이지의 맵 X

  • 국부성 (=구역성 = Locality)
    • 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
    • 캐시 메모리 시스템의 이론적인 근거
    • Denning 교수에 의해 증명됨
      • 어떤 프로그램의 참조 영역은 지역화 된다
  • 시간적 구역성 (Temporal Locality)
    • 최근에 참조한 기억장소의 특정 부분은 그 후에도 계속 참조할 가능성이 높음을 의미함
    • Loop
    • 스택 (Stack)
    • 부프로그램 (Sub Program)
    • Counting
    • 집계 (Totaling)
    • 나머지는 공간구역성
    • 배열순회 X

  • 워킹셋
    • 데닝(Denning)이 제안
    • 일정시간 동안 자주 참조하는
      • 시간에 따라 바뀌게 됨
    • 페이지들의 집합
    • 프로그램의 구역성(Logicality) 특징을 이용
    • 프로세스 수행에 소요되는 시간의 차이 X

  • LRU (Least Recently Used)
    • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
  • B-C-B-A 순이므로 최근에 가장 오랫동안 사용하지 않은 페이지는 C
    • 그러므로 B-D-A 순으로 교체됨

  • 페이징 크기
    • 페이지 크기가 작을 경우
      • 많은 페이지수가 필요
      • 페이지 사상표의 공간은 더 많이 요구됨
      • 알찬 워킹 셋을 유지할 수 있음
    • 페이지 크기가 클 경우
      • 페이지 단편화로 인해 많은 기억공간을 낭비
      • 페이지 사상표의 공간 크기는 줄어듬
      • 전체적인 디스크 접근 시간이 줄어들어
      • 이동(입출력) 효율이 좋아짐
      • 실제 프로그램 수행과 무관한 내용이 포함될 수 있음

5장.

  • 에션바흐 (Eschenbach 스케줄링)
    • 부하가 매우 큰 항공예약 시스템을 위해 개발
    • 탐구시간의 최적화와
    • 회전 지연시간의 최적화를
    • 동시에 추구

  • 스레싱 (Thrashing)
    • 프로세스가
    • 기억장치 접근에서
    • 지나치게 페이지 폴트가 발생
    • 프로세스 수행시간 < 페이지 이동 시간
    • 오류율이 클수록 스레싱이 많이 발생
    • 전체 시스템 성능 및 처리율 저하
    • 다중 프로그래밍의 어느 시점을 넘어서면 스레싱의 빈도가 높아짐
    • 해결 방법
      • 프레임 제공
      • 프로세스 종료
      • 부족한 자원 증설

  • SSTF
    • 탐색 거리가 가장 짧은 요청을 먼저 서비스
    • 현재 헤드 위치의 가까운 곳에 있는것을 먼저 처리
    • 가운데 트랙이 서비스를 더 받음
    • 멀리 떨어진 요청은 기아상태 발생 가능
    • 처리량이 많은 일괄 처리 시스템에 적합
    • 50-40-70-80-100-120-130-150-180-200-0
    • 10+30+10+20+20+10+20+30+20+200 = 370
    • 0-14-37-53-65-67-98-122-124-187
    • 53>65>67>37>14>0>98>122>124>187
    • 아! 요청 대기큐에 0이 존재하지 않으므로 0을 거쳐가는것이 아님
    • 그러므로, 53>65>67>37>14>98>122>124>187
      • 12+2+30+23+84+24+2+63 = 240
    • 14-37-65-67-98-122-124-203
      • 53>65>67>37>14>98>122>124>203
      • 12+2+30+23+84+24+2+79 = 256

  • C-SCAN
    • 항상 바깥쪽에서 안쪽으로 움직이면서
    • 가장 짧은 탐색 거리를 갖는 요청을 서비스 하는 기법
    • 0-40-70-80-100-120-150-180-200
    • 50 > 40 > 0 > 200 > 180 > 150 > 120 > 100 > 80 > 70
    • 10 + 40 + 200 + 20 + 30 + 30 + 20 + 20 + 10 = 380

  • 파일 시스템
    • 사용자가 파일을 생성, 수정, 제거 할 수 있도록 기능을 제공
    • 파일은 주로 보조기억장치에 저장하여 사용
    • 인터럽트에 대한 자동 대처능력이 X

  • 섹터 큐잉 (Sector Queuing)
    • 회전시간의 최적화를 위해 구현된 디스크 스케줄링 기법

  • 파일 디스크립터
    • 파일이 액세스되는 동안
    • 운영체제가 관리목적으로 알아야 할
    • 파일에 대한 정보를 모아 놓은 자료구조
    • 파일 제어 블록
    • 시스템에 따라 다른 구조 (공용X)
    • 파일시스템이 관리하므로 사용자가 직접참조 X
    • 파일 디스크립터 정보
      • 파일 이름,구조
      • 보조기억장치의 유형
      • 액세스 제어 정보
      • 최종 수정날짜 및 시간
      • 오류 발생시 처리방법 X
      • 파일 내용 X

6장

  • 데이터의 비밀성을 보장
    • DES (Data Encryption Standard)
    • RSA (Rivest Shamir Adleman)
    • FEAL (Fast Encryption Algorithm)
    • Read-Solomon code : 데이터 압축에 사용되는 알고리즘

  • 디렉토리 구조
    • 1단계 디렉토리
      • 가장 간단한 디렉토리 구조
      • 모든 파일들이 유일한 이름
      • 같은 디렉토리 내에 위치하며 관리
    • 2단계 디렉토리 MFD UFD
      • 중앙에 마스터 파일 디렉토리
      • 그 아래 사용자가 갖고있는 파일 디렉토리가 존재하는 구조
    • 트리단계 디렉토리 (3단계 X)
      • 운영체제에 사용되는 디렉토리 구조
    • 비순환 그래프 디렉토리
      • 부 디렉토리의 공동 사용이 가능
      • 같이 사용할 수 있도록 지원하기 위한 가장 효율적인 디렉토리
      • 공유된 파일을 삭제할경우
      • 고아 포인터 발생 가능
    • 일반적인 그래프 디렉토리
      • 사이클이 허용
      • 불필요한 파일을 제거하기 위해
      • 참조카운터가 필요한 디렉토리 구조

  • 내부 보안
    • 하드웨어나 운영체제에 내장된 보안 기능을 이용
    • 공용키 보안 X
    • 보안을 위한 권한을 DBMS가 자체결정 X

  • 자원 보호 기법

    컴퓨터 시스템에서 사용되는 자원들에 대하여 불법적인 접근방지와 손상을 예방하는 것
    
    • 접근제어 행렬
    • 전역 테이블
    • 접근 제어 리스트
      • 객체를 중심으로 구성
    • 권한(자격) 리스트
      • Capability List
      • 행, 즉 사용자에 대한 자격들로 구성
      • 권한 제어 행렬 X

  • 순차파일
    • 레코드를 삽입하는 경우
    • 파일을 재구성해야 하므로
    • 파일 전체를 복사해야함
    • 자기테이프에서 사용
    • 기억장치의 효율 좋음
    • 검색효율은 별로
    • 다음 레코드에 대한 접근이 빠름 (순차적)
    • 공간낭비 없음
    • 파일 구성이 쉬움
    • 어떤 기억매체에서도 실현 가능
    • 대화식 처리보다는 일괄 처리에 적합

  • 파일 보호 기법
    • 파일 명명 (Naming)
      • 접근하고자 하는 파일 이름을 모르는 사용자를
      • 접근대상에서 제외
    • 비밀번호
    • 접근제어 (Access Control)
      • 각 파일에 접근 목록을 구성
      • 접근 가능 사용자와 가능한 동작 기록
      • 사용자 신원에 따라 서로 다른 접근 권한을 허용

  • 색인 순차 파일 (Indexed Sequential File)
    • 순차처리와 임의(랜덤)처리가 모두 가능
    • 효율적인 검색 기능
    • 기본 구역 Prime Area
    • 색인 구역 Index Area
      • 트랙 < 실린더 < 마스터
    • 오버플로우 구역 OverFlow Area
    • 인덱스를 처리하는 추가적인 시간이 소요
      • 파일 처리 속도가 느림
    • 오버플로우 레코드가 많아지면 재편성
    • 오버플로우를 처리하기 위한 별도의 공간이 필요

7장

  • 분산처리 시스템의 목적
    • 신뢰도 (Reliability) 향상
    • 자원 공유
    • 연산속도 향상
    • 보안성 X

  • 다중포트 메모리
    • 다중처리기 상호 연결방법 중 하나
    • 하나의 프로세서에
    • 하나의 버스가 할당되어
    • 버스를 이용하려는 프로세스 간
    • 경쟁이 적음

  • 다중처리기에 의한 시스템 구성시 고려사항
    • 메모리 충돌
    • 캐시 일관성
    • 메모리 효율성
    • 메모리 용량 X

  • 다중처리기 시스템의 상호연결 구조방식
    • 공유 버스
      • 프로세서, 기억장치, 입출력 장치들간 하나의 버스 통신로만을 제공
    • 크로스바 스위치
      • 크로스바 교환행렬 : 공유버스 시스템에서 버스의 수를 프로세서 수만큼 증가시킨 구조
    • 다단계 상호연결망
    • 큐브 X

  • 주 (Master) - 종 (Slave) 처리기
    • 하나의 프로세서가 주 프로세서
    • 나머지들을 종프로세서로 지정
    • 비대칭 구조
    • 주프로세서 고장나면 시스템 전체 다운
    • 주프로세서는 입출력, 연산, 운영체제 수행
    • 종프로세서는 연산만 담당
    • 종국은 주국으로부터 POLL 신호를 받아야함

  • 대칭적 처리기 (대칭적 다중프로세서 SMP)
    • 하나의 운영체제를 공유 (기억장치, IO장치 공유)
    • 가장 복잡하지만 가장 강력한 구조
    • 여러개의 프로세서가 동시에 수행 (능력이 비슷 , 동등한 권한)
    • 프로세서의 수에 따라 효율이 증가되진 않음
    • 프로세서 간 통신은 공유메모리를 통해

8장

  • 쉘(shell)
    • 명령어 해석기
    • 시스템과 사용자간 인터페이스를 담당
    • DOS의 COMMAND.COM과 같은 기능 수행
    • 기능
      • 자체 내장 명령어
      • 파이프라인
      • 입출력 방향지정

  • UNIX의 특징
    • 시분할 시스템을 지원 = 대화식 시스템
    • C언어
    • 트리구조의 다중사용자(Multi-User) 환경
      • 동시에 시스템 가용
      • 정보와 유틸리티 공유
      • 편리한 작업환경
    • 여러개의 작업을 병행처리(Multi-Tasking)
    • 이식성이 높으며, 장치 프로세스 간 호환성이 높음
    • 리스트구조 X
    • 디렉토리구조 X
    • 단일 작업용 X

  • 주요 명령어
    • fork : 새로운 프로세스 생성
    • chmod : 파일에 대한 액세스 권한
    • chown : 파일의 소유자 변경
    • wait : 자식프로세스가 종료될 때 까지 부모 프로세스 임시중지
    • mount : 기존 파일 시스템에 새로운 파일 시스템을 서브디렉터리에 연결 (외장하드 연결시)
    • cp : 파일 복사
    • mv : 파일 이동 및 이름 변경
    • rm : 파일 삭제
    • cat : 파일 내용을 화면에 표시 (dos의 type과 유사)
    • getppid : 자식의 프로세스 ID를 얻음
    • fsck : 파일 시스템 검사/보수하여 무결성 검사
    • finger : 사용자 정보 표시
    • ls : 현재 디렉토리 내 파일목록 확인
    • pipe : 앞의 결과를 뒤의 입력으로 보낼 때

  • 파일 시스템 구조

    사용자가 적합한 구조로 파일을 구성할 수 있도록
    
    • 부트(Boot) 블록
      • 부팅시 필요한 코드를 저장
    • 슈퍼(Super) 블록
      • 사용가능한 I-node
      • 사용가능한 디스크 블록의 갯수
      • 전체파일 시스템에 대한 정보
      • File시스템마다 각각의 슈퍼블록을 가지고 있음
    • I-node 블록
      • 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
      • 파일소유자
      • 파일 크기
      • 파일 타입
      • 생성 시기
      • 최종 수정 시기
      • 파일 링크 수
      • 데이터가 저장된 블록의 시작 주소
      • 파일 경로명 X
      • 파일이 최초로 수정된 시간 X
      • 파일 사용 횟수 X
    • 데이터 블록
      • 디렉터리 별
      • 디렉터리 엔트리와
      • 실제 파일에 대한 데이터가 저장





© 2018. by HYEON

Powered by HYEON