반응형

4과목 : 운영체제

디스트 공간 할당

연속 할당(Contiguous Allocation)

  • 생성되는 파일 크기만큼의 공간이 필요
  • 논리적으로 연속된 레코드들이 물리적으로 인접하여 저장되므로 접근 시간이 빠르다
  • 디렉터리가 단순하고, 관리 및 구현이 용이
  • 연속 공간이 없으면 파일이 생성되지 않음
  • 파일의 생성과 삭제가 반복되며 단편화가 발생
  • 단편화를 줄이기 위한 주기적 압축 필요

불연속 할당(Non-Contiguous Allocation)

디스크 공간을 일정 단위로 나누어 할당하는 기법

섹터 단위 할당

하나의 파일이 디스크의 섹터 단위로 분산되어 할당되는 방법. 하나의 파일에 속하는 섹터들이 연결 리스트로 구성되어 있음

블록 단위 할당

  • 하나의 파일이 연속된 여러 개의 섹터를 묶은 블록 단위로 할당되는 방법
  • 블록 단위 할당에는 블록 체인 할당, 색인 블록 체인 할당, 블록 지향 파일 사상 기법이 있음

기억장치 관리 전략

반입(Fetch) 전략

보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할지 결정

   
요구 반입  실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
예상 반입  실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재

배치(Placement) 전략

새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략

   
최초 적합
(First Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역중 첫 영역에 배치
최적 적합
(Best Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
최악 적합
(Worst Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치

교체(Replacement) 전략

주기억장치의 모든 영역이 사용중이면서 새로운 프로그램이나 데이터를 배치할 때, 이미 사용되는 영역 중 어느 영역을 교체할지 결정


다중 처리기의 운영체제 구조

   
주/종(Master/Slave)
처리기
 - 하나의 프로세서를 주프로세서로 지정하고, 나머지들은 종프로세서로 지정
 - 주프로세서가 고장나면 전체 시스템 다운
 - 주프로세서 : 입출력과 연산 담당, 운영체제 수행
 - 종프로세서 : 연산만 담당
분리 실행 처리기  - 주/종 처리기의 비대칭성을 보완하여 각 프로세서가 독자적인 운영체제를 가지고 있도록 구성
 - 각 프로세서에서 발생하는 인터럽트는 해당 프로세서에서 해결
 - 각 프로세서가 독자적인 운영체제를 가지고 있으므로 한 프로세서가 고장나도 전체 시스템이 다운되지 않음
대칭적 처리기  - 여러 프로세서들이 완전한 기능을 갖춘 하나의 운영체제를 공유하여 수행하는 구조
 - 가장 복잡한 구조를 가지고 있으나 가장 강력한 시스템
 - 여러 개의 프로세서가 동시에 수행될 수 있고, 시스템의 전반적인 정보를 통일적이고 일관성 있게 운영함

비선점 스케줄링

FCFS(First-Come First-Service)

  • 도착한 순서에 따라 차례로 CPU 할당
  • 공평성은 유지되지만 짧은 작업이 긴 작업을, 중요한 작업이 중요하지 않은 작업을 기다림

SJF(Shortest Job First)

  • 실행 시간이 가장 짧은 프로세스에 먼저 CPU 할당
  • 가장 적은 평균 대기시간을 제공하는 최적 알고리즘

HRN(Hightest Response-ratio Next)

  • 실행 시간이 긴 프로세스에 불리한 SJF기법을 보완. 대기 시간과 서비스(실행) 시간을 이용
  • 우선순위 계산 공식 = (대기시간 + 서비스 시간) / 서비스 시간

기한부(Deadline)

  • 프로세스에게 일정시간을 주어 그 시간 안에 프로세스를 완료하도록 하는 기법
  • 프로세스에게 할당한 정확한 시간을 추정해야하고, 사용자는 시스템이 요구한 프로세스의 정보를 제공해야 함

우선순위(Priority)

  • 기다리는 프로세스마다 우선순위를 부여하여 가장 높은 작업에게 CPU 할당
  • 우선순위가 동일하면 FCFS기법으로 할당
  • 내부적 요인와 외부적 요인에 따라 다르게 부여
  • 무한연기 또는 기아 상태(Starvation) 발생 가능

스케줄링의 목적

  • 공정성
  • 처리율 증가
  • CPU 이용률 증가
  • 우선순위 제도
  • 오버헤드 최소화
  • 응답 시간(Response Time) 최소화
  • 반환 시간(Turn Around Time) 최소화
  • 대기 시간 최소화
  • 균형 있는 자원의 사용
  • 무한 연기 회피

병행 프로세스

두 개 이상의 프로세스가 동시에 존재하며 실행 상태인 것

임계 구역(Critical Section)

  • 다중 프로그래밍 운영체제에서 여러 프로세스가 공유하는 데이터 및 자원에 대해 어느 한 시점에는 하나의 프로세스만 사용하도록 지정된 공유 자원
  • 임계 구역에는 하나의 프로세스만 접근할 수 있으며, 해당 프로세스가 자원을 반납한 후에만 다른 프로세스가 자원이나 데이터 사용 가능

상호 배제(Mutual Exclusion)

  • 특정 프로세스가 공유 자원을 사용하고 있을 경우 다른 프로세스가 해당 공유 자원을 사용하지 못하게 제어하는 기법
  • 여러 프로세스가 동시에 공유 자원을 사용하려 할 때 각 프로세스가 번갈아 가며 공유 자원을 사용하도록 하는 것으로 임계 구역을 유지하는 기법

동기화 기법

두 개 이상의 프로세스를 한 시점에 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 것

세마포어(Semaphore)

  • 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
  • 다익스트라가 제안, P와 V 연산에 의해 동기와 유지, 상호 배제의 원리 보장
  • S는 P와 V연산으로만 접근 가능한 세마포어 변수로, 공유 자원의 개수를 나타내며 0과 1 혹은 0와 양의 값을 가질 수 있음
  • P 연산 : 자원을 사용하려는 프로세스들의 진입 여부를 자원의 개수(S)를 통해 결정하는 것, wait 동작이라 함
  • V 연산 : 대기 중인 프로세스를 깨우는 신호(Wake up), signal 동작이라 함

모니터(Monitor)

  • 동기화 구현을 위한 특수 프로그램 기법으로 특정 공유 자원을 프로세스에게 할당하는데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성
  • 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조
  • 모니터 내 공유 자원을 사용하기 위해 프로세스는 모니터의 진입부 호출
  • 외부 프로시저는 직접 액세스할 수 없으며, 모니터의 경계에서 상호 배제가 시행
  • 한순간에 하나의 프로세스만 진입하여 자원 사용

배치(Placement) 전략

새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략

   
최초 적합
(First Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역중 첫 영역에 배치
최적 적합
(Best Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
최악 적합
(Worst Fit)
 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치

교착 상태 해결 방법

예방 기법(Prevention)

교착 상태가 발생되지 않도록 시스템을 사전에 제어. 교착 상태 발생의 4 조건 중 상호 배제를 제외한 어느 하나를 부정함으로써 수행

   
점유 및 대기 부정  프로세스가 실행되기 전 필요한 모든 자원을 할당하여 프로세스 대기를 없애거나 자원이 점유되지 않은 상태에서만 자원을 요구하도록 함
비선점 부정  자원을 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고, 요구한 자원을 사용하기 위해 기다리게 함
환형 대기 부정  자원을 선형 순서로 분류하고 고유번호를 할당하고, 각 프로세스는 현재 점유한 자원의 고유 번호보다 앞이나 뒤 어느 한 쪽 방향으로만 자원을 요구하도록 하는 것

회피 기법(Avoidance)

교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법

은행원 알고리즘(Banker's Algorithm)

  • 다익스트라 제안, 은행에서 모든 고객의 요구가 충족되는 현금 할당에서 유래
  • 각 프로세스에게 자원을 할당하여 교착 상태가 발생하지 않으며 모든 프로세스가 완료될 수 있는 상태를 안전 상태, 교착 상태가 발생할 수 있는 상태를 불안전 상태라 함

발견 기법(Detection)

시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것

회복 기법(Recovery)

교착 상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것


(생략)


UNIX 파일 시스템의 구조

부트 블록

부팅시 필요한 코드 저장

슈퍼 블록

전체 파일 시스템에 대한 정보 저장

Inode 블록

각 파일이나 디렉토리 정보 저장

  • 파일 소유자의 사용자 번호(UID) 및 그룹 번호(GID)
  • 파일 크기, 파일 type
  • 생성 시기, 최종 변경 시기, 최근 사용 시기
  • 파일의 보호 권한
  • 파일 링크 수
  • 데이터가 저장된 블록의 시작 주소

데이터 블록

디렉토리별 디렉토리 엔트리와 실제 파일에 대한 데이터 저장


(생략)


자원 보호 기법

접근 제어 행렬(Access Control Matrix)

  • 자원 보호의 일반적 모델, 객체에 대한 접근 권한을 행렬로 표시
  • 행(Row)은 영역(사용자, 프로세스), 열(Column)은 객체, 각 항은 접근 권환의 집합으로 구성

전역 테이블(Global Table)

가장 단순한 구현방법, 3개의 순서쌍인 영역, 객체, 접근 권한의 집합을 목록형태로 구성

접근 제어 리스트(Access Control List)

접근 제어 행렬에 있는 각 열(객체)을 중심으로 접근 리스트 구성

권한(자격) 리스트(Capability List)

접근 제어 행렬의 각 행(영역)을 중심으로 권한 리스트 구성


운영체제 정의/목적/기능

   
정의  컴퓨터 시스템의 자원을 효율적으로 관리, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 프로그램
목적  - 사용자와 컴퓨터 간의 인터페이스 제공
 - 자원의 효율적인 운영 및 자원 스케줄링
 - 데이터 공유 및 주변 장치 관리
 - 처리 능력 및 신뢰도 향상, 사용 가능도 향상
 - 응답 시간 단축, 반환 시간 단축
기능  - 프로세서, 기억장치, 입출력장치, 파일 및 정보 등 자원 관리
 - 자원의 스케줄링 기능
 - 사용자와 시스템 간 인터페이스 
 - 하드웨어와 네트워크 관리 및 제어
 - 시스템 오류 검사 및 복구, 데이터 관리, 데이터 및 자원 공유
 - 자원 보호 기능
 - 가상 계산기 기능

시분할 시스템(Time Sharing System)

  • 여러 명의 사용자가 사용하는 시스템에서 사용자들의 프로그램을 번갈아가며 처리해줌으로써 각자 독립된 컴퓨터를 사용하는 느낌을 주는 방식(라운드 로빈(Round Robin)방식)
  • 일괄 처리 형태에서 사용자 대기시간을 줄인 것
  • 여러 사용자가 동시에 운영체제와 대화하며 각자의 프로그램 실행
  • CPU의 전체 사용 시간을 작은 작업 시간량으로 나누어 번갈아가며 할당
  • 다중 프로그래밍 방식과 결합하여 대화식 처리 가능
  • 전체 효율은 좋아지나 개인별 사용자는 반응속도가 느려짐

운영체제 운용 기법 및 발달 과정

일괄 처리(Batch Processing) 시스템

일정량 또는 일정기간 데이터를 모아 한꺼번에 처리

다중 프로그래밍(Multi Programming) 시스템

하나의 CPU와 주기억장치로 여러 프로그램 동시 처리

시분할(Time Sharing) 시스템

여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가며 처리해줌으로써 각 사용자에게 각자 독립된 컴퓨터를 사용하는 느낌을 주는 방식(라운드 로빈 방식)

다중 처리(Multi Processing) 시스템

여러 개의 CPU와 하나의 주기억장치를 이용하여 여러 개의 프로그램을 동시에 처리하는 방식

실시간 처리(Real Time Processing) 시스템

데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하는 방식

다중 모드 처리(Multi Mode Processing)

일괄 처리 시스템, 시분할 시스템, 다중 처리 시스템, 실시간 처리 시스템을 한 시스템에서 모두 제공하는 방식

분산 처리(Distributed Processing) 시스템

여러 개의 컴퓨터(프로세서)를 통신 회선으로 연결하여 하나의 작업을 처리하는 방식

발달 과정

일괄 처리 시스템 → 다중 프로그래밍, 다중 처리, 시분할, 실시간 처리 시스템 → 다중 모드 → 분산 처리 시스템


Gard → Hard

기억장치 계층 구조

접근 속도   기억 용량
증가 레지스터 감소
  캐시 기억장치  
  주기억장치  
감소 보조기억장치 증가

페이지 부재(Page Fault)

CPU가 접근한 가상 페이지가 주기억장치에 없는 경우


분산 처리 시스템의 설계 목적/장 · 단점

목적

  • 자원 공유
  • 연산 속도 향상
  • 신뢰도 향상
  • 컴퓨터 통신

장점

  • 통신 용이
  • 장치 공유
  • 데이터 공유
  • 중앙 컴퓨터 과부하 줄임
  • 컴퓨터의 위치를 몰라도 자원 사용 가능
  • 시스템의 점진적 확장 가능

단점

  • 중앙 집중형 시스템에 비해 소프트웨어 개발이 어려움
  • 보안 문제 발생
  • 설계 복잡

UNIX 시스템의 구성

   
커널(Kernel)  - UNIX의 핵심
 - 하드웨어 보호, 프로그램과 하드웨어 간 인터페이스 역할
 - 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 통신, 데이터 전송 및 변환
쉘(Shell)  - 사용자의 명령어로 프로그램 호출 및 수행하는 명령어 해석기
 - 시스템과 사용자간 인터페이스
 - DOS의 COMMAND.COM과 동일
 - 명령어가 포함된 파일 형태로 보조기억장치에 저장
유틸리티(Utility)  - 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용
 - DOS에서의 외부 명령어에 해당

파일 시스템의 기능

  • 인터페이스 제공
  • 파일 생성, 수정, 제거 기능
  • 타인의 파일 공동 사용
  • 파일 공유를 위한 여러 접근 제어 방법 제공
  • 사용자 적합 파일 구조 제공
  • 예비(Backup)와 복구(Recovery) 기능
  • 물리적 장치 대신 기호화된 이름 사용
  • 파일의 논리적상태(디렉터리) 공개
  • 파일 보호 능력 및 데이터 무결성

암호화 기법

비밀키 시스템(Private Key System, 개인키 시스템)

동일한 키로 데이터 암호화 및 복호화 하는 대칭 암호화 기법, 대표적으로 DES가 있음

공용키 시스템(Public Key System, 공개키 시스템)

서로 다른 키로 데이터 암호화 및 복호화 하는 비대칭 암호화 기법, 대표적으로 RSA가 있음


 

반응형

+ Recent posts