[정보보안기사] 시스템 보안 #1

6 minute read

[정보보안기사] 시스템 보안#1

1. 운영체제

운영체제 개요

1) 운영체제의 주요 기능

운영체제는 시스템 자원을 효율적으로 사용하게 하는, 사용자와 컴퓨터 간의 인터페이스 역할이다.

2) 운영체제의 구조(5단계로 구분)

  • 1단계 : 프로세서 관리(프로세서랑 프로세스는 다름)

  • 2단계 : 메모리 관리

  • 3단계 : 프로세스 관리

  • 4단계 : 주변장치 관리

  • 5단계 : 파일 관리

3) 운영체제의 기술발전 흐름

  • 1세대 – 일괄처리시스템(Batch Processing System)

  • 2세대

    – 다중프로그램 시스템(Multi-Programming System)

      -- I/O 장치와 CPU 사이의 속도 차이를 이용하여, 하나의 CPU와 주기억장치로 여러 프로그램을 동시에 처리하는 방식
    
      -- I/O 장치의 조작으로 CPU 유휴시간이 발생하면, 다른 작업을 처리함
    

    – 시분할 시스템(Time Sharing System)

      -- 라운드 로빈(Round Robin ; RR) 방식이라고도 함
    

    – 다중처리 시스템(Multi-Processing System)

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

    – 실시간 시스템(Real Time Processing System)

  • 3세대

    – 다중모드처리(Multi-Mode Processing)

      -- 일괄처리 시스템, 시분할 시스템, 다중처리 시스템, 실시간 처리 시스템을 모두 제공하는 시스템
    
  • 4세대

    – 분산처리 시스템(Distributed Processing System)

      -- 여러 개의 컴퓨터(프로세서)를 통신회선으로 연결해서 하나의 작업을 처리하는 방식
    
      -- 각 단말장치나 컴퓨터들은 고유의 운영체제와 CPU, 메모리를 가지고 있음
    

2. 운영체제의 주요 구성 기술

1) 프로세스 관리

  • 프로세스 제어 블럭(PCB ; Process Control Block)

    – 운영체제가 프로세스에 대한 정보를 저장해 놓은 저장소

    – 다른 프로세스로 제어를 넘겨줄 때, 현재 실행중인 프로세스의 정보를 PCB에 저장하고 제어를 넘김

    – 각 프로세스가 생성될 때마다 PCB가 생성되고, 종료되면 제거됨

    – 부모 프로세스와 자식 프로세스는 PCB를 공유하지는 않음

  • 프로세스 구성 요소

    – Code 영역 / Data 영역 / Stack 영역 / Heap 영역

  • 프로세스 상태와 전이

    – 프로세스 상태 : 생성 / 준비 / 실행 / 대기 / 종료

    – 프로세스 상태의 전이 : Dispatch(준비→실행) / Timer Runout(실행→준비) / Block(실행→대기) / Wake UP(대기→준비)

  • 프로세스 스케쥴링 : 어떤 프로세스한테 CPU 사용권을 주는게 현명한가?

    – 선점형 스케쥴링 정책(Preemptive Scheduling Policy) : 처리 도중 뺏기 가능

      - SJF(Shortest Job First ; 최단작업 우선 처리)
    
      - SRT(Shortest Remaining Time First ; 최단 잔여 시간)
    
      - RR(Round Robin ; 순환할당 스케쥴링) : 시분할 시스템에 쓰이는거
    
      - MLQ(Multi Level Queue ; 다단계 큐)
    
      - MFQ(Multi level Feedback Queue ; 다단계 피드백 큐)
    

    – 비선점형 스케쥴링 정책(Non-Preemptive Scheduling Policy) : 일단 사용권 받으면 끝까지 쓰고 넘김

      - SJF(Shortest Job First ; 최단작업 우선 처리) ; 선점형, 비선점형 둘다 사용가능
    
      - FIFO(First In First Out ; 선입선출)
    
      - FCFS(First Come First Service ; 선입 선출)
    
      - HRN(Highest Response Ratio Next) : CPU할당을 받을 시간과 기다린 시간으로 계산되는 우선순위로 결정
    
          - Priority = (Estimated_Run_Time + Waiting_Time) / (Estimated_Run_Time)
    
          - Priority가 큰 수를 먼저 실행
    
  • 프로세스 교착 상태(Deadlock)

    – 발생 조건

      - 상호 배제(Mutual Exclusion) : 한 프로세스가 자원을 다른 프로세스가 사용하지 못하게 배제
    
      - 점유와 대기(Wait) : 프로세스가 자신에게 할당된 자원을 해제 하지 않고, 다른 자원을 기다림
    	
      - 비중단 조건(비선점 조건 ; Non-Preemption) : 프로세스에 할당된 자원을 끝날 때까지 해제 할수 없을 때
    
      - 환형대기 조건(Circular Wait) : 상호 배제 조건이 환형을 이루고 있음
    
  • 해결방안

      - 예방 : 교착 상태의 필요조건을 부정함으로써, 교착 상태가 발생하지 않도록 하는 방법
    
      - 회피 : 교착 상태 가능성을 인정하고, 적절하게 피하는 방법
    
      - 발견(탐지) : 교착 상태가 발생하면, 교착 상태의 프로세스와 자원을 발견하는 방법
    
      - 회복(복구) : 교착상태를 일으킨 프로세스를 종료하고 할당된 자원을 회수하는 방법
    

2) 기억장치 관리

  • 주기억장치

    – 반입기법(Fetch) : 언제 보조기억장치의 데이터를 주기억장치로 옮기는가??

      - 요구 반입 정책
    
      - 예상 반입 정책
    

    – 배치기법(Placement) : 보조기억장치의 데이터를 주기억장치의 어디로 위치시는가??

      - 최초 적합
    
      - 최적 적합
    
      - 최악 적합
    

    – 교체기법(Replacement) : 공간확보를 위해 어떤 데이터를 제거 하고 새로운 데이터를 위치할 것인가??

      - FIFO(First In First Out)  
    
      - LRU(Least Recently Used) : 가장 오랫동안 사용안한 것을 바꿈
    
      - LFU(Least Frequently Used) : 가장 사용 횟수가 작은 것을 바꿈
    
      - NUR(Not Used Recently) : 최근에 전혀 사용되지 않은 것을 바꿈
    
  • 가상기억장치

    – 구현 방식

      - 페이징(Paging) 기법 : 프로그램을 동일한 크기의 Page로 나누어 구현
    		
          - 내부단편화의 원인
    		
              - 스레싱(Thrashing) : 자주 페이지의 교체가 일어나는 현상(프로세스 처리 시간 < 페이지 교체 시간)
              - 워킹 셋(Working Set) : 자주 사용되는 페이지들을 묶어서 주기억장치에 계속 상주시키는 방법
    		
              - 페이지 교체 알고리즘
    
              - FIFO(First In First Out)
              - LRU(Least Recently Used) : 가장 오랜기간 사용하지 않은 페이지 교체
              - OPT(Optimal ; 최적교체) : 가장 사용되지 않을(?) 페이지를 교체 ;; 실현가능성 희박
              - SCR(Second Chance Replacement) : 참조 비트를 주고, 1이면 0으로 깍고, 0이면 교체
    
      - 세그먼테이션(Segmentation) 기법 : 프로그램을 가변적 크기의 Segment로 나누어 구현
    	
          - 외부단편화의 원인
    
      ※ 단편화(Fragmentation)
    
      - 내부 단편화(Internal Fragmentation) : 할당 받은 페이지를 다 사용 못했을 때 생기는 자투리 공간들(영향이 적긴적지)
    
      - 압축(Compaction)으로 해결 : 분산되어있는 단편화된 빈 공간들을 결합(Garbage Collection)
    
      - 외부 단편화(External Fragmentation) : 할당과 제거를 반복하면서, 적재하기 얘매해진 공간들
    
      - 통합(Coalescing)으로 해결 : 인접해 있는 단편화된 공간을 하나의 공간으로 통합
    
  • 보조기억장치

    – 디스크 스케쥴링

      - FIFO(=FCFS)
    
      - SSTF(Short Seek Time FIrst) : 탐색거리가 가장 짧은 요청을 먼저 처리  
    	
      - SCAN : 헤드가 한 방향으로 쭉가면서 처리하는 방법, 실린더 끝까지 가서 방향을 전환한다.
    
      - C-SCAN : 헤드가 실린더 끝에서 안쪽으로이동하며 처리
    
      - N-Step SCAN : 헤드의 방향이 전환될 때, 이미 대기 중이던 요청만 처리(도중에 생긴 요청은 무시)
    

3) 파일 시스템 관리

  • 디렉터리의 구조

      -- 1단계 디렉토리 구조 : 모든 파일이 같은 디렉토리에 존재하며, 파일 이름은 유일한 구조
    
      -- 2단계 디렉토리 구조 : 중앙에 마스터 디렉토리(MDF)가 있고, 각 사용자의디렉토리(UFD)가 하위에 있는 구조
    
      -- 트리 디렉토리 구조 : 하나의 루트 디렉토리와 다수의 하위 디렉토리로 구성되며, 포인터로 탐색(일반적으로 OS에서 사용)
    
      -- 비주기 디렉토리 구조(Acyclic Graph Directory) : 파일과 디렉토리의 공유가 허용될 수 있는 사이클이 없는 구조
    
      -- 일반 그래프 구조 : 사이클이 허용되고, 기본 트리 디렉토리 구조에 링크를 첨가한 구조
    
  • Windows File System

    – FAT(File Allocation Table)

      - DOS 때 부터 사용되고 있는 대표적인 File System. FAT16과 FAT32 등이 있다
    
      - 하드디스크에 FAT라는 영역을 만들어 파일의 실제 위치 등의 정보를 기록하고 이를 이용함
    
      - 저용량에 적합 / 보안에 취약 / 호환성이 우수
    

    – NTFS(NT File System)

      - MFT(Master File Table)를 사용하여 관리하며, Mirror와 파일로그가 유지되어 파일 복구가 가능함
    
      - FAT에다가 대용량 / 보안성 / 압축기능 / 원격저장소 등의 기 능을 추가해서 만든 윈도우 전용 File System
    
      - 대용량 지원 / 강력한 보안 / 자동 압축 및 안정성 / 호환성이 구림 / 저용량에선 FAT보다 느림
    
  • Unix & Linux File System

      -- EXT2 : FSCK(File System Check)으로 시스템 손상 복구 가능
    
      -- EXT3 : 저널링(Journaling) 기술로 더욱  빠르고 안정적인 복구가 가능
    
      -- EXT4 : 빨라진 FSCK / 하위 호환성 / 지연된 할당(Allocate-On-Flush ; 데이터가 디스크에 쓰이기전까지 블록 할당 지연)
    
  • Partition

      - 주 파티션 : 기본 파티션을 의미 / 주 파티션의 수 + 확장 파티션의 수 <= 4
    
      - 확장 파티션 : 저장 공간을 없으며, 논리 파티션을 만들게 해주는 그릇의 역할 / 디스크에 하나만 생성 가능
    
      - 논리 파티션 : 최대 12개
    

4) 분산 시스템

  • 개념 : 분산되어 있는 컴퓨터에서, 작업이 나누어 처리되고 그 결과가 서로 호환되도록 연결되어 있는 시스템

  • 투명성(Transparency)를 보장해야 함

      - 위치 투명성 : 컴퓨터의 실제 위치를 몰라도 접근 가능
    
      - 이주 투명성 : 자원 이동에 제한이 X
    
      - 병행 투명성 : 사용자의 위치를 몰라도 다른 사용자와 자원의 공유 가능
    
      - 복제 투명성 : 사용자에게 통지할 필요 없이 자유롭게 복제 가능
    

3. 운영체제의 주요 구성 기술

1) 유닉스

  • 구조
    • 커널(Kernel)
      • os 의 핵심으로 주기억장치에 상주하여 자원을 관리

      • 크게 입출력/메모리/프로세스/파일관리의 부분으로 나뉨

      • 쉘에서 지시한 작업을 수행함

    • 쉘(Shell)

      • 커널과 사용자간의 인터페이스를 제공

      • 사용자가 입력하는 명령의 입/출력을 수행하며 프로그램을 실행시킴

      • 명령어 해석기/번역기라고 함

    • 파일 시스템(File System)

      • 계층적 트리 구조를 가지고 있고, 다음과 같이 구성되어 있음

      • 부트 블럭(Boot Blocks) : 파티션의 첫 부분에 예약되어 있는 블

      • 슈퍼 블럭(Super Block) : 파일 시스템당 한 개씩 생성 / 전체 파일 시스템에 대한 정보 저장

      • 아이노드(I - Nodes) : 파일 이름을 제외한 모든 파일과 디렉토리에 대한 정보 저장
      • 데이터 블럭(Data Blocks) : 실제 데이터가 저장

Updated: