본문 바로가기
정보처리기사/실기

운영체제

by Anonymouszero 2025. 7. 18.
반응형

1. 운영체제 개념

> 운영체제
 - 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
 - 컴퓨터 사용자와 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어 일종
 - 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경 제공
 - 종류
  > Windows, UNIX, LINUX, MacOS, MS-DOS 등

> 목적 : 처반사신
 - 처리능력 : 일정 시간 내에 시스템이 처리하는 일의 양
 - 반환 시간 : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
 - 사용 가능도 : 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
 - 신뢰도 : 주어진 문제를 정확하게 해결하는 정도

> 운영 체제 기능
 - 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원관리
 - 자원의 스케줄링 기능
 - 인터페이스 제공
 - 각종 하드웨어와 네트워크를 관리 제어
 - 데이터 관리, 데이터 및 자원의 공유 기능 제공

2. 운영체제 종류

> Windows
 - 마이크로소프트 사가 개발
 - 특징
  : GUI - 마우스로 모든 작업을 수행하는 방식
  : 선점형 멀티태스킹
    - 동시에 여러 개의 프로그램을 실행하는 멀티태스킹
    - 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행중 문제가 발생하면 프로그램을 강제종료 시키고
      모든 시스템 자원을 반환하는 방식
  : PnP(Plug and Play)
   - 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해 주는 기능
  : OLE(Object Linking and Embedding)
   - 여러 응용프로그램에서 작성된 문자나 그림의 개체를 현재 작성 중인 문서에 자유롭게 연결(Linking) 하거나
     삽입(Embedding)하여 편집할 수 있게 하는 기능
  : 255자의 긴 파일명 - \ / * ? " < > | 를 제외한 모든 문자 및 공백을 사용하여 최대 255자 까지 파일 이름 지정가능
  : Single-User 시스템 - 컴퓨터 한 대를 한 사람만이 독점하여 사용

> UNIX
 - AT&T 벨 연구소, MIT, General Electric이 공동 개발
 - 특징
  : 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제
  : 개방형 시스템
  : C언어로 작성되어 있어 이식성이 높고 장치, 프로세스간의 호환성이 좋음
  : 다중 사용자(Multi-User), 다중 작업(Multi-Tasking) 지원
  : 트리 구조의 파일 시스템
 - 구성
 1) 커널(kernel)
   : 하드웨어 보호 및 프로그램과 하드웨어 간의 인터페이스 역할 담당
   : UNIX의 핵심
   : 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능 수행

 2) 쉘(Shell)
   : 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
   : 시스템과 사용자 간의 인터페이스 담당
   : 종류 - Bouren Shell, C Shell, Korn Shell 등

 3) 유틸리티 프로그램(Utility Program)
   : 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용
   : DOS에서의 외부 명령어에 해당
   : 종류 - 에디터, 컴파일러, 인터프리터, 디버거 등

> GNU
 - 리처드 스톨먼의 자유 소프트웨어 재단에서 진행한 OS 프로젝트
 - GNU is not UNIX

> LINUX
 - 리누스 토발즈가 UNIX를 기반으로 개발한 운영체제
 - 프로그램 소스 코드가 무료로 공개되어 있어 프로그래머가 원하는 기능 추가 가능
 - 다양한 플랫폼에 설치하여 사용이 가능, 재배포 가능
 - UNIX와 완벽히 호환되며 대부분의 특징이 UNIX와 동일

> MacOS
 - 애플이 UNIX를 기반으로 개발한 운영체제
 - 애플 사에서 생산하는 제품에서만 사용이 가능
 - 드라이버 설치 및 install과 uninstall이 단순

> Android
 - 구글이 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
 - 모든 코드가 공개된 개방형 소프트웨어
 - 자바와 코틀린으로 애플리케이션 작성
 - 스마트폰 등의 휴대용 장치에서 주로 사용

> iOS
 - 애플이 개발한 유닉스 기반의 모바일 운영체제
 - 타사 제품은 탑재 불가능

3. 기억장치 관리

> 기억장치 관리 전략
 - 한정된 주기억장치의 공간을 효율적으로 사용하기 위함
 - 반(언제)배(어디에)교( : 반입(Fetch)전략, 배치(Placement)전략, 교체(Replacement) 전략

> 반입 전략(Fetch)
 - 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정
 - 기법
 1) 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재
 2) 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재

> 배치 전략(Placement)
 - 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지 결정
 - 기법
  1) 최초 적합(First-Fit) : 빈 영역 중 첫 번째 분할 영역에 배치
  2) 최적 적합(Best-Fit) : 빈 영역 중 단편화를 가장 작게 남기는 분할 영역에 배치
  3) 최악 적합(Worst-Fit) : 빈 영역 중 단편화를 가장 많이 남기는 분할 영역에 배치
 - 단편화
  : 주기억장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우,
    분할된 영역이 할당받은 것에 비해 작거나 커서 생기는 빈 기억공간을 의미
  : 외부 단편화 - 분할된 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 할당될 수 없어
                         사용되지 않고 빈 공간으로 남아있는 분할된 전체 영역
  : 내부 단편화 - 분할된 영역이 할당될 프로그램의 크기보다 크기 때문에 프로그램이 할당된 후 사용되지 않고 남아있는 빈공간

> 교체 전략(Replacement)
 - 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지 결정하는 전략
 - 종류
  : FIFO - First In First Out
  : OPT - 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
  : LRU - Least Recently Used : 가장 오랫동안 사용되지 않은 페이지 교체
  : LFU - Least Frequently Used : 참조 횟수가 가장 작은 페이지 교체
  : NUR - Not Used Recently : 최근에 사용하지 않은 페이지 교체
  : SCR - Second Chance Replacement : FIFO 방식에 R(Reference) 비트를 추가하여, R이 1인 경우 한 번 기회를 더 줌
  : MFU - Most Frequently used : 참조 횟수가 가장 많은 페이지 교체

4. 가상기억장치 구현

- 가상기억장치 (Virtual Memory)
 : 보조기억장치의 일부를 주기억장치처럼 사용하는 것
 : 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용
 : 프로그램을 여러 개의 작은 블록 단위로 나누어 가상기억장치에 보관해놓고,
   프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
 : 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음
 : 블록 단위로 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화 해결 가능

- 구현 방법
 1) 페이징(Paging) 기법
  - 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후, 주기억 장치의 영역에 적재시켜 실행
  - 페이지 : 프로그램을 일정한 크기로 나눈 단위 = 1 ~ 4KB
  - 프레임 : 페이지 크기로 일정하게 나누어진 주기억장치의 단위
  - 외부 단편화는 발생하지 않음 / 내부 단편화는 발생
  - 주소 변환을 위해 페이지 맵 테이블 필요
  - 페이지 맵 테이블 사용으로 비용이 증가하고, 처리 속도가 감소

 2) 세그멘테이션(Segmentation) 기법
  - 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행
  - 세그먼트(Segment) : 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위
                                   : 각 세그먼트는 고유한 이름과 크기를 가짐
  - 기억 공간을 절약하기 위해 사용
  - 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블이 필요
  - 내부 단편화는 발생하지 않음 / 외부 단편화는 발생

5. 페이지 교체 알고리즘

> 페이지 교체 알고리즘
 - 페이지 부재(Page Falut) : CPU가 액세스한 가상 페이지가 주기억장치에 없는 경우
                                          : 디스크에서 주기억장치로 해당 페이지를 가져와야 함
 - 페이지 부재가 발생 시 주기억 장치의 모든 페이지 프레임이 사용중일때, 어떤 페이지 프레임을 교체할 것인지 결정하는 기법
 - 페이지 크기가 작음 = 단편화 감소 = 페이지 이동시간 감소 = 매핑 속도 증가 = 입출력시간 증가
 - 페이지 크기가 큼 = 단편화 증가 = 페이지 이동시간 증가 = 매핑 속도 감소 = 입출력시간 감소
> OPT(Optimal replacement, 최적 교체) 
 - 앞으로 가장 오랫동안 사용하지 않을 페이지 교체
 - 벨레이디가 제안
 - 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘
> FIFO(First In First Out)
 - 가장 먼저 들어와 가장 오래 있었던 페이지 교체
> LRU(Least Recently Used)
 - 최근에 가장 오랫동안 사용하지 않은 페이지 교체
 - 각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현시점에서 가장 오랫동안 사용하지 않은 페이지 교체
> LFU(Least Frequently Used)
 - 사용 빈도가 가장 적은 페이지 교체
> NUR(Not Used Recently)
 - 최근 사용하지 않은 페이지 교체
 - LRU에서 나타나는 시간적 오버헤드를 줄일 수 있음
 - 최근 사용 여부 확인을 위해 참조비트(Reference Bit)와 변형비트(Dirty Bit, Modified Bit)가 각 페이지마다 사용됨
 - 순서 결정 (참조 비트, 변형 비트)
  1) (0, 0) > 교체순서 : 1
  2) (0, 1) > 교체순서 : 2
  3) (1, 0) > 교체순서 : 3
  4) (1, 1) > 교체순서 : 4
> SCR(Second Chance Replacement, 2차기회 교체)
 - 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법
 - FIFO의 단점 보완

> 가상기억장치 기타 관리 사항
 - 페이지 크기
  1) 페이지의 크기가 작을 경우
    - 페이지 단편화 감소
    - 페이지를 주기억장치로 이동시키는 시간 감소
    - 효율적인 워킹 셋 유지
    - 페이지 맵 테이블의 크기가 커짐
    - 매핑 속도가 늦어짐
    - 디스크 접근 횟수가 많아짐
    - 입 출력 시간이 늘어남
  2) 페이지의 크기가 클 경우
    - 페이지 단편화 증가
    - 페이지를 주기억장치로 이동시키는 시간 
    - 페이지 맵 테이블의 크기가 감소
    - 매핑 속도가 빨라짐
    - 디스크 접근 횟수가 줄어들음
    - 입 출력 시간이 감소함
 
 - Locality(국부성, 지역성, 구역성, 국소성)
  : 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
  : 스래싱을 방지하기 위한 워킹 셋 이론의 기반
  : 가상기억장치 관리와 캐시 메모리 시스템의 이론적 근거
  : 데닝 교수에 의해 증명됨
  : 종류
   1) 시간 구역성(Temporal Locality) - 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하는 현상
   2) 공간 구역성(Spatial Locality) - 프로세스 실행 시 일정 위치의 페이지를 집중적으로 엑세스 하는 현상

 - 워킹 셋 (Working Set)
  : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
  : 데닝이 제안한 프로그램의 움직임에 대한 모델
  : 프로그램의 Locality 특징을 이용
  : 자주 참조되는 워킹 셋을 주기억장치에 상주시켜 페이지 부재 및 페이지 교체현상이 줄어들어 프로세스의 기억장치 사용 안정화

 - 스래싱(Thrashing)
  : 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  : 다중 프로그래밍 시스템, 가상기억장치 사용 시스템에서 하나의 프로세스 수행 중 페이지 부재가 자주 발생하면 나타남
  : 전체 시스템의 성능이 저하됨
  : 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만,
   더욱 정도가 커지면 스래싱이 나타나고, CPU의 이용률은 급감함

6. 프로세스 개요

> 프로세스 : 실행중인 프로그램 의미
> PCB(Process Control Block) : 프로세스 제어블록
 - 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳

> 프로세스 상태 전이
 - 상태 용어
  ~ 제출(submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
  ~ 접수(hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
  ~ 준비(ready) : 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
  ~ 실행(run) : 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
  ~ 대기(wait), 블록(block) : 프로세스 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고,
                                          입출력 처리가 완료될 때까지 대기 상태
  ~ 종료(terminate, exit) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

 - 전이 용어
  ~ Dispatch : 준비상태에서 실행상태로 전이
  ~ Wake Up : 입출력 작업이 완료 되어 대기상태에서 준비상태로 전이 
  ~ Spooling : 입출력장치의 공유 및 상대적으로 느린 처리속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해
                      입출력할 데이터를 직접 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
  ~ Traffic Controller(교통량 제어기) : 프로세스의 상태에 대한 조사와 통보 담당

 - 스레드(Thread)
  : 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위, 프로세스 내에서의 작업 단위
  : 단일 스레드 - 하나의 프로세스에 하나의 스레드
  : 다중 스레드 - 하나의 프로세스에 하나 이상의 스레드
  : 프로세스의 일부 특성을 갖고 있어 경량 프로세스라고도 함
  : 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당함

7. 스케쥴링

> 스케줄링
 - 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
 - 종류
  1) 장기 스케줄링 : 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업
  2) 중기 스케줄링 : 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
  3) 단기 스케줄링 : 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업

> 비선점 스케줄링(Non-Preemptive)
 - 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
 - 프로세스가 CPU를 할당 받으면 완료될 때까지 사용
 - 프로세스 응답 시간의 예측이 용이
 - 일괄 처리 방식에 적합
 - 종류 : FCFS, SJF, 우선순위, HRN, 기한부 등

> 선점 스케줄링(Preemptive)
 - 우선 순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
 - 우선순위가 높은 프로세스를 빠르게 처리할 수 있음
 - 주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용
 - 많은 오버헤드 발생
 - 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

8. 스케쥴링 알고리즘

> FCFS(First Come First Service, 선입선출) = FIFO
 - 준비상태 큐에 도착한 순서에 따라 차례로 CPU 할당
 - 가장 간단한 알고리즘
 - 대기시간 : 이전 프로세스까지의 진행시간의 합
 - 반환시간 : 프로세스의 대기 시간 + 실행 시간

> SJF(Shortest Job First, 단기 작업 우선)
 - 준비상태 큐에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당
 - 대기시간, 반환시간은 FCFS와 동일

> HRN(Highest Response-ratio Next) : 대서/서
 - 대기 시간과 서비스 시간을 이용
 - 실행 시간이 긴 프로세스에 불리한 SJF 기법 보완
 - 우선순위를 계산하여 가장 높은 것부터 낮은 순으로 우선순위 부여
 - 우선순위 = 대기시간 + 서비스 시간 / 서비스 시간

> RR(Round Robin)
 - 시간 할당량(Time Slice, Quantum) 동안만 실행한 후, 다음 프로세스에게 CPU를 넘기는 기법
 - 시분할 시스템을 위해 고안된 방식
 - 할당되는 시간이 클 경우 FCFS 기법과 같아지고,
   작을 경우 문맥 교환 및 오버헤드가 자주 발생되어 요청 작업을 신속히 처리하기 어려움
 - 할당은 들어오는 순서대로 진행
 - 대기시간 : 프로세스의 가장 마지막 실행이 시작되기 전까지의 진행 시간, 이때 실행된 시간은 제외
 - 반환시간 : 프로세스가 완료되는 시간을 이용하여 구함

> SRT(Shortest Remaining Time)
 - 현재 실행중인 프로세스의 남은 시간과 새로 도착한 프로세스의 실행 시간을 비교하여
   가장 짧은 실행 시간을 요구하는 프로세스에게 CPU 할당
 - 시분할 시스템에 유용
 - 준비상태 큐에 있는 각 프로세스의 실행 시간을 추적하여 보유하고 있어야 하므로 오버헤드 증가
 - 대기시간 : 완료 시간 - 도착시간 - 실행시간
 - 반환시간 : 프로세스가 완료되는 시간

9. 교착상태(Dead Lock)

> 교착상태
 - 상호배제에서 나타나는 문제점
 - 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

> 교착상태 발생 필요충분 조건(상호가 선점하고, 환형이가 점유 대기한다)
 - 상호배제(Mutual Exclusion) : 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함
 - 점유와 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 사용되고 있는 자원을 점유하기 위해
                                                 대기하는 프로세스가 있어야 함
 - 비선점(Non-Preemptive) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
 - 환형 대기(Circular Wait) : 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어
                                           자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함

> 교착상태 해결방법(예방 못하면 회복, 발견 못하면 회피)
 1) 예방 기법(Prevention)
  - 교착상태가 발생하지 않도록 사전에 시스템을 제거
  - 교착상태 발생 4가지 조건 중 하나를 제거하여 수행
  - 자원의 낭비가 가장 심함

 2) 회피 기법(Avoidance)
  - 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피함
  - 은행원 알고리즘이 대표적
   : 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래

 3) 발견 기법(Detection)
  : 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견
  : 교착상태 발견 알고리즘과 자원 할당 그래프 등을 사용 가능

 4) 회복 기법(Recovery)
  : 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복

10. 운영체제 기본 명령어

Window 명령어 Unix/Linux 명령어 기능
DIR ls 현재 디렉토리의 파일 목록 표시
COPY cp 파일 복사
DEL rm 파일 삭제
TYPE cat 파일의 내용을 표시
REN   파일의 이름을 변경
MD mkdir 디렉터리 생성
- rmdir 디렉터리 삭제
CD cd 동일한 드라이브에서 디렉터리 위치 변경
CLS clear 화면의 내용을 지움
ATTRIB - 파일의 속성을 변경
- chmod 파일의 보호 모드를 설정하여 파일의 사용 허가 지정
- chown 파일 소유자와 그룹 변경
FIND - 파일에서 문자열 찾기
- find 파일을 찾기
CHKDSK - 디스크 상태 점검
- fsck 파일 시스템을 검사하고 보수
FORMAT - 디스크 표면을 트랙과 섹터로 나누어 초기화
MOVE mv 파일 이동
- kill PID(프로세스 고유번호)를 이용하여 프로세스 종료
- killall  프로세스의 이름을 이용하여 프로세스 종료
- fork 새로운 프로세스 생성
- uname 시스템의 이름과 버전, 네트워크 호스트명 등의 시스템 정보 표시
- ps 현재 실행중인 프로세스 표시
- pwd 현재 작업중인 디렉터리 경로 표시
- top 시스템의 프로세스와 메모리 사용 현황 표시
- who 현재 시스템에 접속해 있는 사용자 표시

 

12. Secure OS

> Secure OS
 - 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제
 - 보안 커널 : 보안 기능을 갖춘 커널, TCB 기반으로 참조 모니터의 개념을 구현하고 집행
 - 보호방법 구현(난이도순)
  1) 암호적 분리(cryptographic Separation) : 내부 정보를 암호화 하는 방법
  2) 논리적 분리(Logical Separation) : 프로세스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한
  3) 시간적 분리(Temporal Separation) : 동일 시간에 하나의 프로세스만 수행되도록 해, 동시실행으로 발생하는 보안 취약점 제거
  4) 물리적 분리(Physical Separation) : 사용자별로 특정 장비만 사용하도록 제한
 - Secure OS의 보안 기능(식임객 완신감 > 식임댁 왔는감?)
  : 식별 및 인증, 임의적/강제적 접근통제, 객체 재사용 보호, 완전한 조정, 신뢰 경로, 감사 및 감사기록 축소

> 참조 모니터(Reference Monitor)
 - 보호 대상 객체에 대한 접근통제를 수행하는 추상머신
 - 이를 구현한 것이 보안 커널
 - 보안 커널 데이터베이스(SKDB; Security Kernel Database)를 참조하여 객체에 대한 접근 허가 여부 결정
 - 참조 모니터와 보안 커널 특징(격리 검증 완(전)성!)
  1. 격리성(Isolation) - 부정 조작이 불가능 해야 함
  2. 검증가능성(Verifiability) - 적절히 구현되었다는 것을 확인할 수 있어야 함
  3. 완전성(Completeness) - 우회가 불가능 해야 함

반응형