본문 바로가기

정보보안기사/필기

시스템 보안 - 운영체제 구조

[1. 운영체제]

  • 정의
    컴퓨터 시스템의 자원들을 효율적으로 관리
    효과적인 사용을 위한 환경을 제공하는 여러 프로그램의 모임
  • 목적
    처리 능력 향상
    신뢰성 향상
    응답시간 단축
    자원 활용률 향상
    가용성 향상
  • 주요 자원 관리 기능
    프로세스 관리
    기억장치 관리
    주변장치 관리
    파일 관리
  • 분류
    Batch processing system
    Multi programming system
    Time sharing
    Multi processing system
    Realtime system
    Multi-mode processing
    Distributed system

[2. 프로세스 관리]

  • 프로세스
    실행중인 프로그램
    PCB 를 갖는 프로그램
  • 스레드
    프로세스에서 실행의 개념만을 분리한 개념
    실행의 기본 단위
  • 비교
    구분    
    상호 통신    
    처리 방식    
    부하    
  • 프로세스 상태 전이
  • 컨텍스트 스위칭
    CPU 가 이전의 프로세스 상태를 PCB 에 보관하고 다른 프로세스의 정보를 PCB 에서 읽어 레지스터에 적재하는 과정
    인터럽트 발생, 허가받은 CPU 시간을 다 사용한 경우, IO 를 하는 경우 또는 우선순위가 높은 프로세스에 의해 선점 된 경우 발생

[3. CPU 스케줄링 기법]

  • 정의 및 목적
    CPU 자원을 할당해 주는 순서를 정함
    CPU 활용 극대화, 응답 시간 단축, 공평한 자원 활용, Multi tasking 극대화
  • 선점 vs 비선점
      선점 비선점
    개념 어떤 프로세스가 점유한 CPU 를 다른 프로세스가 점유 할 수 있다. 프로세스가 CPU 를 반납하기 전까지 다른 프로세스는 대기해야 한다.
    장점 RTOS, 빠른 응답 Batch process 에 적합
    단점 Context switching 으로 인한 overhead 짧은 작업 시간이더라도 대기해야 하는 경우가 발생
  • FCFS (=First Come First Service)
    실행 한 순서대로 CPU 를 할당
    비선점형 스케줄링 기법
  • SJF (=Shortest Job First)
    수행 시간이 가장 짧은 작업을 먼저 수행
    FCFS 보다 평균 대기시간이 짧지만, 큰 작업에 대해서는 대기시간 예측이 어렵다.
    비선점형 스케줄링 기법
  • Round Robin
    FCFS 로 CPU 를 할당하나, 같은 크기의 CPU 시간을 할당
    이 시간 내 완료하지 못하면, CPU 를 반납하고, 대기 큐에 맨 뒤로 이동
    선점형 스케줄링 기법
  • SRT (=Shortest Remaing Time)
    SJF + 선점형 기법
    실시간 시스템에 유리하다.
  • Multi Level Queue
    여러 개의 대기 큐를 그룹으로 나누고, 각 큐에 독자저인 스케줄링 알고리즘에 따라 CPU 를 할당
  • Multi Level Feedback Queue
    입출력 위주의 프로세스와 CPU 위주의 프로세스의 특성에 따라 서로 다른 타임 슬라이스를 부여
    새로운 프로세스에는 높은 우선순위를 부여하여 먼저 실행되게 하고, 점차 낮은 우선순위를 부여해가며 작업을 완료시키는 방식
    Hybrid 스케줄링 기법 (== 비선점 priority queue + 선점 round robin)

[4. 동시성 제어]

  • 상호 배제 (=Mutual Exclusion)
    다수의 프로세스가 동일 자원 접근 시 무결성 보장을 위한 기법
    다수의 프로세스가 동일 자원에 동시에 읽기/쓰기를 못하게 하는 상호배제 매커니즘
    다수의 프로세스가 하나의 공유 자원을 상호 배타적으로 사용하는 기법
  • 임계 영역 (=Critical Section)
    프로그램에서 임계 자원을 이용하는 부분
    공유 자원의 독점을 보장하는 코드 영역을 의미한다.
    lock() ~ unlock() 사이 영역
  • 세마포어 (=Semaphore)
    wait() => lock()
    signal() => unlock()
    이진 세마포어와 카운팅 세마포어가 존재
  • 교착 상태 (=Dead Lock)
    하나 또는 다수의 프로세스가 더 이상 계속 할 수 없는 어떤 특정 사건을 기다리고 있는 상태
  • 교착 상태 발생 조건
    조건 내용
    상호배제 한번에 한 프로세스만이 자원 사용 가능 (자원을 점유)
    점유와 대기 이미 어떤 자원을 보유한 상태에서 다른 자원을 요구함
    비선점 자원을 점유한 프로세스 만 이 해당 자원을 해제 할 수 있음
    환형 대기 (=Circular wait) 프로세스와 자원이 원형을 이룸
    각 프로세스는 자신에게 할당된 자원을 점유하면서, 상대방 프로세스의 자원을 상호 요청함
  • 교착 상태 예방
    조건 내용
    상호 배제 조건 부정  
    점유와 대기 조건 부정 앞으로 필요할 자원들을 한꺼번에 요청한다.
    비선점 조건 부정 자원을 점유한 프로세스 만 이 해당 자원을 해제 할 수 있음
    환형 대기 (=Circular wait) 프로세스와 자원이 원형을 이룸
    각 프로세스는 자신에게 할당된 자원을 점유하면서, 상대방 프로세스의 자원을 상호 요청함
  • 교착 상태 회피
    Banker`s Algorithm => 
  • 교착 상태 발견
    자원 할당 그래프 => 자원 할당 그래프의 소거법을 이용하여 교착상태 를 감지
                           => 실행을 완료할 수 있는 프로세스와 교착상태에 빠진 프로세스를 결정
  • 교착 상태 회복
    프로세스 중지 => 교착상태에 걸린 모든 프로세스를 중지
                       => 교착상태가 해결 될 때까지 한 프로세스씩 중지
                       => 최소 비용으로 중지시키는 방법을 찾아야 함
    자원 선점 => 프로세스로부터 자원을 선점하여 교착 상태가 해결될 때 까지 분배함
                 => 자원을 영원히 할당 받을 수 없는 Starvation 문제등을 고려 해야 함

 

[5. 디스크 관리]

디스크 구조

  • Platter => 데이터가 저장되는 자기 디스크
  • Track => Platter 내 연속된 sector 의 공간
  • Sector => 디스크에 정보가 저장되는 최소 단위
  • Cylinder => 수직으로 연속되는 track 들의 집합
  • Spindle => Platter 들의 중앙에 있는 회전 핀, RPM으로 속도 측정, Access time 과 관련

디스크 접근 시간

  • Seek Time => Head 가 특정 Cylinder (또는 track) 으로 이동하는데 걸리는 시간
                  => Head가 움직이는 시간
  • Rotation Delay Time => Sector 가 Head 까지 도달하는게 걸리는 시간
                               => Cylinder 가 회전하는 시간에 영향을 받는다.
  • Transfer Time => 데이터를 전송하는데 걸리는 시간

디스크 스케줄링

  • FCFS
    들어온 순서대로 처리
    개발에 용이함
  • SSTF (=Shortest Seek Time First)
    탐색 거리가 가장 짧은 track 에 대한 요청을 먼저 처리
    전반적인 Seek time 이 감소하나 Starvation 현상 발생 가능 함
  • SCAN
    일명 엘리베이터 알고리즘
    Head 가 이동하는 방향의 모든 요청을 서비스하고, 이후 역방향의 요청을 서비스 함
  • C-SCAN (=Circular-SCAN)
    Head 는 항상 안쪽 track 에서 바깥쪽 track 으로 이동
    맨 바깥쪽으로 이동 후 다시 맨 안쪽 track 으로 Head 를 옮김
  • C-LOOK (=Circular-LOOK)
    C-SCAN 을 보완하여 대기 시간을 좀 더 균형있게 함
    진행 방향의 더 이상 요청이 없으면, Head 는 진행 방향을 바꾼다.

 

[6. 파일 시스템]

파일을 저장 장치에 어떻게 저장하고 관리 할지 결정

  1. FAT (=File Allocation Table)
    1. FAT16 => MS 운영체제에서 호환되며 단순한 구조
                => 최대 2GB 까지만 지원
                => 클러스터당 1,632KB를 할당하여 내부 단편화가 발생
    2. FAT32 => FAT16 보강
                => 최대 2TB 까지 지원
                => 암호화 및 압축이 불가능
                => 클러스터당 4KB 를 할당하여 내부 단편화를 줄임
  2. NTFS (=New Technology File System)
    암호화 및 압축, 대용량 파일 시스템을 지원
    가변 클러스터가 가능하며, 기본값은 4KB
    Transaction Logging 을 통해 복구/오류 수정이 가능하다.
    Windows NT 이상에서 지원
  3. EXT (=Extended File System)
    1. EXT => 최대 2GB 까지 지원
             => 접근제어, inode 수정, timestamp 수정이 불가능
             => 사용 할 수록 내부 단편화가 심해진다.
    2. EXT2 => 파일 시스템은 2GB, 볼륨 크기는 32TB 까지 지원
               => 서브 디렉터리 개수 제한이 대폭 증가
               => FSCK 를 사용한 파일 시스템 오류 수정 지원 하지만, 전체 섹터를 검사해서 복구에 많은 시간을 소요
    3. EXT3 => 저널링 기능 추가
               => 파일 시스템 변경 시 저널에 먼저 수정 내용을 기록
               => 디스크 조각화를 최소화한다.
    4. EXT4 => 파일 시스템은 16TB, 볼륨은 1000TB 까지 지원
               => 저널 체크섬 기능이 추가 됨
               => ext2, ext3 와 호환 가능
               => Delayed allocation: 디스크에 쓰이기 전까지 블록 할당을 미루어, 조각화 방지에 효과적
  4. UFS (=Unix File System)
    VTOC Disk Label => 파티션 기본 정보
    Boot Block
    Primary Super Block => 데이터 블록 개수, 실린더 그룹의 개수, 마운트 정보
    Backup Super Block
    Cylinder Group
    Super Block => 파일 시스템 크기, i-node table 크기, ...
    Cylinder Group Block
    I-node Table : File에 대한 metadata
    Data Block: 실제 데이터가 저장되는 공간

[7. RAID]

Redundant Array of Independent Disks 의 약자

디스크 고장 시 복구 할 수 있게 2개 이상의 디스크에 데이터를 저장함.

 

저용량, 저성능, 저가용성인 디스크를 배열 구조로 중복 구성하여

고용량, 고성능, 고가용성 디스크를 대체하고자 함

 

데이터 분산 저장에 의한 동시 엑세스가 가능하며,

병렬 데이터 채널에 의한 데이터 전송 시간이 단축되는 장점이 있다.

  • RAID 0
    최소 2개의 디스크로 구성됨
    데이터를 나누어 저장하지만, 중복 저장하지 않아서 디스크 장애 시 복구 불가능
  • RAID 1
    디스크 미러링
    데이터를 완전 이중화하여 저장
    가장 좋은 방식이지만 비용이 많이 발생
    장애 시 복구 가능하며, Read 와 Write 가 병렬적으로 실행되어 속도가 빠름
  • RAID 2
    디스크 오류 복구를 위하여 개발됨
    Hamming Code 를 이용하여 오류를 복구
    별도의 디스크에 복구를 위한 ECC 를 저장한다.
  • RAID 3
    RAID 0 에 Parity 정보를 별도 Disk 에 저장
    Parity 계산 및 별도 디스크 저장으로 Write 성능이 저하 된다.
  • RAID 4
    Parity 정보를 별도 Disk 에 저장
    데이터는 Block 단위로 데이터 디스크에 분산 저장
    RAID 3 와 동일하나 Parity 를 Block 단위로 관리하는 것만 차이가 있다.
  • RAID 5
    분산 Parity 를 구현하여 안정성이 향상 됨
    최소 3개의 디스크를 요구하며, 보통 4개로 구성 한다.
  • RAID 6
    RAID 5 의 안정성 향상을 위해 Parity 를 다중화하여 저장한다.
    장애가 발생한 상황에서 추가적인 디스크 장애가 발생해도 정상 동작한다.

'정보보안기사 > 필기' 카테고리의 다른 글

시스템 보안 - 운영체체 이해 및 관리  (0) 2022.01.15