필기

[전산직 필기] 2. 운영체제론

HHRR 2024. 7. 14. 14:14
출처 : 박미진 컴퓨터 일반 
전산직 필기 준비를 위해 박미진 컴퓨터 일반 이론 정리 글입니다.

1) 운영체제 개요

운영체제 정의

  1. 사람을 대신하여 컴퓨터 시스템의 각종 자원을 보다 효율적으로 관리하고 운영하는 시스템 소프트웨어
  2. 사용자에게 최대의 편리성을 제공하도록 하기 위한 컴퓨터 하드웨어와 사용자간의 매개체 역할을 하는 시스템 프로그램

운영체제 목적

  1. 편리성 : 사용자에게 편리한 환경 제공
    • 운영체제는 사용자가 프로그램 효율적으로 실행할 수 있는 환경 제공해야함
    • 사용자와 컴퓨터 시스템이 정보 및 명령을 상호 교환할 수 있는 인터페이스 제공해야함
  2. 효율성 : 시스템 성능 향상을 지원
    1. 처리량 : 시스템의 생산성을 나타내는 것. 단위시간당 처리하는 작업량.
    2. 응답시간 : 사용자가 시스템에 작업을 의뢰한 후 반응을 얻을 때까지 걸리는 시간.
      • 시분할 시스템, 온라인 시스템 : 응답시간(response time)
      • 일괄처리 시스템 : 반환 시간(return around time)
    3. 신뢰도 : 하드웨어, 소프트웨어가 실패 없이 주어진 기능을 수행할 수 있는 능력
    4. 사용 가능도 : 사용자가 일정기간 동안 컴퓨터를 실제 사용한 시간 비율
      • 고장과 오류 발생해도 영향 최소화하여 시스템 전체 중단하지 않고 운영할 수 있어야함.
  3. 제어 서비스 향상
    • 운영체제는 시스템을 확장하고 효율적으로 운영할 수 있도록 새로운 기능의 효과적인 개발 허용해야함
    • 입출력장치의 동작을 관리 및 제어하거나 시스템 오류 예방 등으로 컴퓨터 자원을 여러 사용자에게 효율적으로 할당하고 관리할 수 있도록 제어 서비스를 발전해나가야함.

운영체제의 기능

  1. 자원 관리
    1. 주기억장치 관리
      • 주기억장치의 어느 부분 사용? 누가 사용? 점검
      • 주기억장치에 저장할 프로세스 결정
      • 주기억장치 할당, 회수 방법 결정
    2. 보조기억장치 관리
      • 빈 여유 공간 관리
      • 새로운 파일을 작성할 때 저장 장소 할당
      • 파일을 생성하고 삭제
    3. 프로세스 관리
      • 프로세스와 스레드를 스케줄링함
      • 사용자 프로세스와 시스템 프로세스를 생성하고 제거함
      • 프로세스를 중지하고 재수행함
      • 프로세스 동기화 방법을 제공함
      • 프로세스 통신 방법을 제공함
      • 교착상태를 방지하는 방법을 제공함
    4. 주변장치(입출력장치) 관리
      • 임시저장 시스템 기능 제공
      • 일반 장치용 드라이버 인터페이스 제공
      • 특정 장치 드라이버 제공
    5. 파일(데이터) 관리
      • 파일 생성하고 삭제함
      • 디렉터리 생성하고 삭제함
      • 보조기억장치에 있는 파일을 맵핑함
      • 안전한(비휘발성) 저장장치에 파일을 저장함.
  2. 시스템 관리
    1. 시스템 보호(사용자 권한 부여)
      • 컴퓨터 자원에서 프로그램, 프로세스, 사용자의 접근을 제어하는 방법
      • 운영체제는 파일 사용 권한 부여, 데이터 암호화 등 서비스를 제공하여 데이터와 시스템을 보호함
    2. 네트워킹(통신)
      • 연결된 프로세서가 통신을 할 때 경로설정, 접속정책, 충돌, 보안 등의 문제를 고려함
    3. 명령 해석기
      • 사용자나 프로그램에서 대화형으로 입력한 명령어를 이해하고 실행하는 사용자와 운영체제의 인터페이스

운영체제의 유형별 특징

  1. 다중프로그래밍 시스템
    • 하나의 CPU로 여러 개의 사용자 프로그램이 마치 동시에 실행되는 것처럼 처리하는 방식
    • 한 사용자 프로그램이 입출력 장치 등 CPU를 필요로 하지 않는 동안, 다른 사용자 프로그램이 그 시간에 CPU 사용하여 효율 극대화
    • 여러 작업을 준비 상태로 두기 위해 메모리에 보관, 일정 형태의 메모리 관리 필요
    • 스케줄링 필요
  2. 시분할 시스템
    • 프로세서 스케줄링과 다중 프로그래밍 사용하여 각 사용자에게 컴퓨터를 시간적으로 분할하여 사용할 수 있도록 함
    • 여러 작업이 메모리에 저장되어있는 경우 : 한 작업이 다른 작업의 데이터 변경하는 것에 대한 제어가 필요
  3. 다중 처리 시스템
    • 마이크로프로세서 여러 개를 연결해 다중 프로세서를 만들 수 있음. → 초고속 프로세서 사용하지 않고도 대형 컴퓨터의 능력 얻을 수 있음
    • 주/종 다중 처리 시스템과 대칭적 구성 다중 처리 시스템으로 구분됨
  4. 분산처리 시스템
    • 시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신함
    • 자원 공유, 연산속도 향상, 신뢰성과 통신 등의 목적으로 여러 개의 물리적 프로세서에 연산을 분산시킴

  • 응답 시간과 데이터 입력 방식에 따라
    • 일괄처리(batch)
    • 대화식(interactive)
    • 실시간(real-time)
  • 클라우드 컴퓨팅 기술
    • laaS(Infrastructure as a Service) - 데이터 센터에 있는 자원 가상화하여 인터넷으로 제공 EC2, S3
    • PaaS(Platform as a Service) - 응용 프로그램 구축 개발환경 웹으로 제공 open api
    • Saas(Software as a Service) - 소프트웨어 인터넷으로 제공. 온디멘드 소프트웨어

2) 프로세스와 스레드

프로세스

  1. 프로세스 정의
    • 실행중인 프로그램
    • 디스크에 저장된 실행 가능 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태로 해당 프로세스가 사용하고 있는 메모리 영역 존재
    • 1 프로세스, 1 PCB
  2. 프로세스 일반적인 메모리 구조
    • 프로그램 : 컴파일한 코드, 초기화 전역변수, 문자열, 문자열 상수 등 정적 데이터 포함하는 정적 개체
    • 프로세스 : PC나 레지스터처럼 어떤 자원을 사용하는지 관련 정보가 들어있는 동적 개체
    • 스택 : 데이터 일시 저장 영역
      1. 지역변수, 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용
      2. 함수 호출할수록 커지고, 반환하면 줄어들음
    • : 코드 영역과 별도로 유지되는 영역
      1. 동적으로 메모리 할당하려고 프로그램 실행 중 시스템 호출을 사용했다가 해제하는 방법
    • 데이터 : 프로그램의 가상주소 공간
      1. 전경변수나 정적변수를 저장하거나 할당하고 실행하기 전에 초기화
    • 코드 : 실행 명령을 포함하는 메모리거나 목적 파일에 있는 프로그램 영역
      1. 프로그램 시작할 때 프로세서가 디스크에서 읽어 실행하는 컴파일한 프로그램을 저장

프로세스 종류

  1. 역할에 따른 분류
    1. 시스템(커널) 프로세스
      • 모든 시스템 메모리와 프로세서의 명령에 액세스할 수 있는 프로세스
      • 프로세스 실행 순서를 제어하거나 다른 사용자 및 커널(OS) 영역을 침범하지 못하게 감시하고, 사용자 프로세스를 생성하는 기능을 한다.
    2. 사용자 프로세스
  2. 병행 수행 방법에 따른 분류
    • 독립 프로세스
    • 협력 프로세스

프로세스 상태

  1. 준비 → 실행 (Dispatching)
    • : 준비 상태 프로세스는 디스패처에 의해 프로세서가 부여되면 실행상태가 됨
  2. 실행 → 준비 (Time run out)
    • : 프로세스 독점 방지 위해 인터럽트 클록 두어서 지정 시간 동안만 프로세스가 프로세서 점유하도록
  3. 실행 → 대기 (Block)
    • : 지정된 시간 이전에 입출력 연산 등을 필요로 할 경우, 프로세스가 프로세서 양도
  4. 대기 → 준비 (Wakeup)
    • : 입출력 작업 끝났을 때

프로세스 제어 블록 (PCB)

  1. 운영체제에 특정 프로세스에 대한 정보 제공해주는 데이터 블록
  2. 프로세스 생성시 만들어짐, 주기억장치에 유지됨, 운영체제 내에서 한 프로세스의 존재 정의, 프로세스 실행 종료시 같이 삭제됨
  3. 인터럽트 처리, 자원할당, 스케줄링 등을 수행하는 운영체제의 모든 모듈에 의해 판독되고 수정 가능

프로세스 식별자

프로세스 식별자  
프로세스 상태 생성, 준비, 실행, 중단
프로그램 카운터 프로세스 실행 다음 명령의 주소
레지스터 저장 영역 인터럽트 발생시 프로그램 카운터랑 함께 저장
프로세스 스케줄링 정보 우선순위, 스케줄링 큐의 포인터
계정 정보  
입출력 상태 정보  
메모리 관리 정보  

문맥교환(Context Switching)

  1. 프로세서를 다른 프로세스로 전환하려면 이전의 프로세스 상태 레지스터 내용을 보관하고, 다른 프로세스의 레지스터들을 적재하는 과정
  2. 프로세스가 ‘준비→실행’, ‘실행→준비’, ‘실행→대기’ 상태로 변환할 떄 발생
  3. 문맥교환은 모두 오버헤드 존재
  4. 효율적 구현하기 위해 스레드 사용

스레드

  1. 스레드 개념
    1. 프로세스 - 자원, 제어(스레드)
    2. 1 프로세스 여러 스레드
    3. 스레드들은 프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보를 공유함
      • PC, SP 등을 비롯한 문맥정보, 지역 데이터, 스택을 독립적으로 가짐
      • 코드, 전역 데이터, 힙을 다른 스레드와 공유함
    4. 같은 프로세스의 스레드들은 동일한 주소 공간 공유
  2. 스레드의 이점
    • 프로세스의 자원과 메모리 공유 가능 → 성능 향상
    • 경제성 향상 → 오버헤드 감소
    • 다중처리(멀티 프로세싱)로 성능과 효율 향상 → 병렬 실행으로 성능과 효율성 높임

3) 병행 프로세스

병행 프로세스

  1. 병행 프로세스
    • 한 프로세서는 한 번에 하나의 프로세스 실행 가능
    • 운영체제거 프로세서를 빠르게 전환해서 시분할하여 프로세스 여러 개를 동시에 실행하는 것처럼 보이게 하는 것을 병행 프로세스라함
  2. 병행 프로세스의 해결 과제
    • 공유 자원을 상호 배타적으로 사용해야함
    • 병행 프로세스 간에는 협력이나 동기화가 되어야 함
    • 두 프로세스 사이에서는 데이터를 교환할 수 있도록 통신이 되어야 함
    • 결정성 확보해야함
    • 교착상태 해결하고 병렬처리 능력 극대화 해야함
    • 상호배제 보장해야함

상호 배제와 동기화

  1. 임계영역(Critical Section)
    • 임계자원 : 둘 이상의 프로세스들이 동시에 공유할 수 없는 자원
    • 임계영역 : 임계자원을 이용하는 부분
    • 임계영역에는 한 순간 반드시 단 하나의 프로그램만이 허용됨
    • 프로세스는 임계영역 내에서 보류(block) 되어서는 안되며 무한루프에 빠지지 않아야 함
  2. 세마포어(Semaphore)
    • 다익스트라(Dijkstra)에 의해 제안된 것으로 상호배제의 해결을 위한 동기 도구
    • 세마포어는 플래그로 사용되는 음이 아닌 정수값을 갖는 변수
    • P : 검사(problem), V : 증가(verhogen)
    P(S) : while S <= 0 do no-op;
    				S := S-1;
    V(S) : S := S + 1;
    
  • 임계영역 문제를 해결하기 위한 조건
    • 상호배제
    • 진행
    • 제한된 대기
  • 상호배제 방법
    • 데커의 알고리즘
    • TestAndSet 명령어
    • 세마포어
    • 모니터

4) 교착 상태

교착상태(deadlock) 정의

  • 다중 프로그래밍 시스템에서 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 ‘교착상태’에 빠졌다고 함
  • 임의의 프로세스 집합에서 그 집합 내의 각각의 프로세스가 다른 프로세스에 의해서만 발생될 사건을 서로 기다리는 상태

자원할당 그래프

  • 교착상태 필요 조건
    1. 상호 배제 : 한 번에 한 프로세스만 그 자원 사용 가능
    2. 점유와 대기 : 적어도 하나의 자원을 보유하고 현재 다른 프로세스에 할당된 자원을 얻기 위해 기다리는 프로세스가 있어야함
    3. 비선점 : 자원을 강제로 빼앗을 수 없고, 그 자원을 점유하고 있는 프로세스가 끝나야 해제 가능
    4. 순환 대기 : 프로세스와 자원들이 원형을 이룸

교착상태 처리 기법

  1. 교착상태 예방 다음 세가지 필요조건 중 하나를 부정
    1. 점유와 대기조건의 부정
    2. 비선점 조건의 부정
    3. 순환 대기 조건의 부정
  2. 교착상태 회복
    1. 프로세스 중지
    2. 자원 선점 (희생자의 선택, 복귀, 기아)

5) 단일 프로세서 스케줄링

스케줄러의 종류

  1. 작업 스케줄러 : 장기 스케줄러
    1. 디스크 공간에 제출된 프로세스들을 선택하여 주기억장치로 적재
    2. CPU 위주의 연산과 I/O 위주의 연산을 적절히 혼용하여 스케줄링
  2. 프로세스 스케줄러 : 단기 스케줄러
    1. 실행 준비가 되어있는 프로세스 중에서 하나를 선택하여 CPU에 할당

프로세스 스케줄링 알고리즘

  1. FCFS 스케줄링 (비선점)
    1. 가장 간단한 기법
    2. 준비큐에 도착한 순서에 따라 CPU를 할당받음
    프로세스 실행시간
    P1 24
    P2 3
    P3 3
    • 평균 대기 시간 = (0+24+3)/3 = 17
    • 평균 반환 시간 : (24+3+3)/3 = 27
  2. Round Robin 스케줄링 (선점)
    1. FCFS에 의해서 프로세스들이 내보내어 지며 각 프로세스는 같은 크기의 CPU를 할당한다.
    프로세스 도착시간 실행시간
    P1 0 8
    P2 1 4
    P3 2 9
    P4 3 5
    각 프로세스가 CPU를 사용할 수 있는 Time Slice 는 4 로 한다
    • 평균 대기 시간 = ((16-4) + (4-1) + ((8-2)+(20-12)+(25-24)) + ((12-3)+(24-16)) / 4 = 11.75
    • 평균 반환 시간 : (20+(8-1)+(26-2)+(25-3) / 4 =18.25
  3. P1(4) / P2(4) / P3(4) /P1(4) /P3(4) / P4(2) / P5(1)
  4. SJF 스케줄링 (비선점)
    1. 기다리고 있는 작업 중에서 수행시간이 가장 짧다고 판정된 것을 먼저 수행한다
    프로세스 도착시간 실행시간
    P1 0 8
    P2 1 4
    P3 2 9
    P4 3 5
    P1 / P2 / P4 / P3
    • 평균 대기 시간 = 7.75
    • 평균 반환 시간 : 14.25
  5. SRT 스키줄링 (선점)
    1. SJF와 마찬가지로 새로 도착한 프로세스를 포함하여 처리가 완료되는데 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행한다.
    프로세스 도착시간 실행시간
    P1 0 8
    P2 1 4
    P3 2 9
    P4 3 5
    P1 P2 P4 P1 P3
    • 평균 대기 시간 = 6.5
    • 평균 반환 시간 : 13
  6. 다단계 큐 알고리즘 (선점)
    1. 각 작업들이 서로 다른 묶음으로 분류될 수 있을 때 사용된다
    2. 일반적으로 전면작업(대화형)과 후면작업(일괄처리형)으로 분류한다면 이 두 작업은 각각 요구 반응 시간이 다르므로 서로 다르게 스케줄링 되어야 한다
    3. 준비상태 큐를 여러 단계 종류로 분할해둔다
    4. 각 큐는 자신만의 독자적인 스케줄링 알고리즘을 갖고있다.
  7. 다단계 피드백 큐 알고리즘 (선점)
    1. cpu는 사용시간에 따라 입출력 위주와 cpu 위주로 구분하여 특성에 따라 서로 달ㄴ time slice를 부여한다
    2. 프로세스가 하위단계의 큐로 옮겨갈수록 주어진 할당 시간을 점차 크게 설정
    3. 입출력 작업들 우선권
  8. HRN 스케줄링 (비선점)
    1. SJF의 약점이었던 긴 작업과 짧은 작업간의 지나친 불평등을 어느 정도 보완한 기법
    2. $$ (대기시간 + 서비스 받을 시간) / 서비스 받을 시간 $$
    3. 짧은 작업이 우선순위 높
    4. 긴 작업도 대기시간 큰 경우에는 우선순위 높

6) 메모리 관리

메모리 관리 정책

  1. 반입(Fetch) 정책
    1. 페이지를 메인메모리로 가져올 시기를 결정하는 정책
    2. 요구반입 : 실행중인 프로그램에 의해 어떤 프로그램이나 자료가 참조될 때 그것을 주기억장치로 옮김
    3. 예상반입 : 현 프로그램 수행 중에 앞으로 요구될 가능성이 큰 자료 또는 프로그램을 예상하여 주기억장치로 미리 옮김
  2. 배치(Placement) 정책
    1. 새로 반입된 자료나 프로그램을 주기억장치의 어디에 위치시킬 것인가를 결정하는 정책
    2. 최초 적합 (First Fit)
    3. 최적 적합 (Best Fit)
    4. 최악 적합 (Worst Fit)
  3. 교체 (Replacement) 정책
    1. 새로 들어온 프로그램이 들어갈 장소를 마련하기 위해서 어떤 프로그램이나 자료를 주기억장치로부터 제거할 것인가를 결정하는 정책으로 가상기억장치에서 이용됨

7) 가상 메모리

가상 메모리

  1. 가상 메모리
    1. 프로그래머나 사용자들이 디스크의 커다란 메모리 공간을 가상메모리로 인식하고 이를 이용하여 메모리의 부족함 없이 다중 프로그래밍 환경을 실현하는 기법
    2. 논리적 주소를 물리적으로 분리하여 사용자가 주기억장치 용량을 초과한 프로세스에 주소를 지정해서 주기억장치를 제한 없이 사용할 수 있도록 함
    3. 프로세서의 이용률과 처리율 향상
    4. 응답시간이나 반환시간이 향상되지는 않음
  2. 동적 주소 변환 (DAT :Dynamic Address Translation 기법)
    1. 실행중인 프로세스가 참조하는 주소와 주기억장치에서 사용하는 물리적 주소를 분리해야함
    2. 가상주소(논리적 주소, 프로그램 주소)를 물리적 주소로 변환하는 과정을 매핑이라함
    3. dat는 인위적 연속성을 제공
      1. 가상주소 연속적이여도 주기억장치에서도 연속적일 필요 없음
    4. 매핑 테이블 유지
  3. 블록(가상메모리의 이동단위) 사상
    1. 고정길이의 블록은 페이지, 가변길이의 블록은 세그먼트
      1. 페이징 기법
        1. 외부 단편화 x
        2. 페이지의 크기를 작게 설계함으로써 내부 단편화 줄일 수 있음
        3. 페이지 사상으로 비용이 증가하고 수행속도가 감소
        4. 페이지는 프로그램에 상응하는 논리적 의미를 갖지 못함
      2. 세그멘테이션 기법
        1. 기억장치 할당은 최초, 최적, 최악 적합 기법을 사용하여 해결하는 dat 방법을 사용(외부적 단편화가 발생0
        2. 세그먼트 는 페이지 시스템보다 수행방법이 쉽고 명확
    2. 페이지 폴트는 프로세스에서 원하는 페이지가 주기억장치 내에 존재하지 않을 경우 → 페이지 교체

페이지 교체 정책

  1. FIFO
    1. 페이지가 교체될 필요가 있을 때, 가장 먼저 주기억장치에 들어온 페이지와 교체시킴
    2. Belady’s 모순 : 페이지 프레임 수 증가될 때 현실적으로 페이지 부재가 더 증가함
  2. LRU (Least Recently Used)
    1. 최근에 가장 적게 쓰인 페이지(가장 오랫동안 사용되지 않은 페이지)를 교체한다
    2. 각 페이지들이 참조될 때마다 그때의 시간을 테이블에 기억시키는 막대한 오버헤드를 초래
  3. LFU (Least Frequently Used)
    1. 각 페이지마다 참조 횟수에 대한 계수기를 가지며 그 값이 가장 작은 페이지가 교체됨
    2. 어떤 프로세스의 초기 단계에서 한 페이지가 많이 사용되고 이후에 사용되지 않을 경우 큰 계수를 가지고 있기 떄문에 더이상 사용되지 않아도 메모리에 남아있음
    3. 바로 불러온 페이지가 교체될 수도 있음
  4. NUR (Not Used Recently)
    1. 최근에 쓰이지 않는 페이지는 가까운 미래에도 쓰이지 않을 가능성이 많기 떄문에 교체 대상
    2. 각 페이지 당 두 개의 하드웨어 비트(참조비트, 변형비트)를 가지고 이 값으로 교체할 페이지를 선택함.

적재 정책

  1. 지역성(locality)
    1. 실행중인 프로세스에 의해 나타나는 특성으로 프로세스들은 기억장치 내의 정보를 균일하게 액세스하는 것이 아니라 어느 한 순간에 특정부분을 집중적으로 참조한다
    2. 지역성은 캐시 메모리, 연관 기억장치의 성립 이유가 되고 Working Set를 뒷받침 한다.
    3. 시간 지역성은 처음에 참조된 기억장소가 가까운 미래에도 계속 참조될 가능성이 높다는 것을 의미
    4. 공간지역성은 일단 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조되는 경향을 의미
  2. 스래싱(Thrashing)
    1. 너무 자주 페이지 교체가 일어나는 경우를 말하는 것으로 어떤 프로세스가 프로그램 수행에 소요되는 시간보다 페이지 교체에 소요되는 시간이 더 큰 경우
    2. 프로세서의 이용률을 높이고 스레싱을 중단하려면 다중 프로그래밍의 정도를 낮춰야만 함.
    3. 스래싱 현상을 방지하려면 각 프로세스에 필요한 프레임을 제공할 수 있어야 함.
  3. 페이지 부재 비율 (PFF, Page Fault Frequency)
    1. 스래싱을 예방하는 직접적인 액세스 방법으로, 페이지 환경에서 프로세스의 실행을 측정하는 기준이 됨
    2. 페이지 부재 비율이 높다는 것은 프로세스에 더 많은 프레임이 필요하다는 의미, 페이지 부재 비율이 낮다는 것은 프로세스에 프레임이 너무 많다는 의미

8) 디스크 스케줄링 

탐색시간 최적화 기법 (트랙을 찾는 데 걸리는 시간)

  1. FCFS(First Come First Service) 스케줄링
    1. 가장 간단한 형태로, 먼저 도착한 요청이 우선적으로 서비스 받는다.
    2. 헤더 이동 거리에 비해 전체적인 처리율이 낮다.
  2. SSTF(Shortest Seek Time First) 스케줄링
    1. 탐색거리가 가장 짧은 요청이 먼저 서비스를 받는 기법으로 현재 헤드 위치에서 최소의 탐색시간을 요하는 디스크 요청을 고르며 먼저 처리해 나간다.
    2. 안쪽이나 바깥쪽트랙이 가운데 있는 트랙보다 훨씬 서비스를 덜 받는 기아 현상이 발생할 수 있다.
    3. FCFS보다 처리량이 많고 평균 응답시간이 짧으나 응답시간의 편차가 발생
    4. 일괄처리 시스템에 유용, 대화형 시스템에 부적합
  3. SCAN 스케줄링 (엘레베이터 알고리즘)
    1. 요청 큐의 동적 특성을 반영한 것으로 입출력 헤드가 디스크의 한 끝에서 다른 끝으로, 또한 다른 끝에서 도달시 역방향으로 이동하면서 요청된 트랙에 대한 처리를 해나간다.
    2. 헤드는 디스크와 한 끝과 다른 끝 사이 계속 왕복
    3. SSTF에서 발생하는 차별대우를 많이 없애고 낮은 편차를 가지므로 대화형 작업에 적합
  4. C-SCAN (Circular-SCAN) 알고리즘
    1. SCAN에서의 불공평한 대기시간을 좀 더 균등하게 하려 변형을 가한 스케줄
    2. 한쪽 방향으로 헤드를 이동해 가면서 요청을 처리하지만 한쪽 끝에 도착하면 반대 방향으로 헤드를 처리하지 않고 이동
    3. 큐 내의 트랙을 처리하고 있는 도중 새롭게 요청된 트랙은 다음 번 이동 때 처리함
  5. LOOK 스케줄링
    1. 헤드는 각 방향으로 요청에 따르는 거리만큼만 이동하고, 현재 방향에서 더이상의 요청이 없다면 헤드의 이동 방향이 바뀌는 방식으 사용
    2. SCAN은 LOOK, C-SCAN은 C-LOOK이라 함

회전지연시간 최적화 기법 - 섹터를 찾는 데 걸리는 시간

  1. 에션바흐 기법
  2. SLTF 스케줄링 (섹터 큐잉)

9. 파일 관리

파일

  1. 파일의 구성 요소
    1. 항목
    2. 레코드
  2. 파일 구조에 따른 분류
    1. 히프 파일
    2. 키순차 파일
    3. 인덱스 파일
    4. 직접 파일

디렉터리 시스템

  1. 1단계 디렉터리
    1. 모든 파일 각각 고유한 이름 가짐
  2. 2단계 디렉터리
    1. 각 사용자는 자신의 사용자 파일 디렉터리 UFD를 갖고 각 UFD는 유사 구조를 가지며 오직 한 사용자의 파일만 나타냄
  3. 트리구조 디렉터리
    1. 하나의 루트 디렉터리를 가지며 시스템 내의 모든 파일은 유일한 경로명을 가짐

디스크 할당 방법

  1. 디스크의 빈 공간 관리
    1. 비트 벡터
    2. 연결 리스트
  2. 연속 할당
    1. 파일들이 디스크의 연속적인 주소들의 집합에 할당되느 방식
    2. 파일에 접근할 때 필요한 디스크 탐색의 횟수는 최소화
    3. 주기적 압축 필요
  3. 연결 할당
    1. 디스크 블록들은 디스크 전체에 분산되어있음
    2. 디렉터리 파일의 첫번째와 마지막 블록의 포인터 가지고 있음
    3. 외부 단편화 X
    4. 직접 액세스 기능 지원 X
    5. 포인터를 위한 기억공간이 필요
  4. 인덱스 할당
    1. 연속할당의 외부 단편화 해결했으나 직접 액세스를 지원할 수 없고 블록들의 포인터가 디스크 전체에 분산되어 있음
    2. 인덱스 할당은 인덱스 블록으로 관리하여 직접 액세스를 지원

'필기' 카테고리의 다른 글

[전산직 필기] 5. 데이터베이스론  (1) 2024.09.23
[전산직 필기] 3. 데이터 통신론  (0) 2024.08.23