[시스템 보안] 시스템 보안을 위한 컴퓨터 시스템, 운영체제 복습

2025. 3. 10. 14:29·[ Laboratory ]/Advanced Operating System

시스템 보안을 위한 컴퓨터 시스템 복습

 

시스템 관리 

- 계정 관리: 사용자를 식별하는 가장 기본적인 인증 수단인 아이디와 패스워드에 대한 관리

- 세션 관리: 일정 시간이 지나면 세션을 종료하고 비인가자의 세션 가로채기를 통제하는 것

- 접근 제어: 네트워크 안에서 시스템을 다른 시스템으로부터 적절히 보호할 수 있도록 접근을 통제하는 것

- 권한 관리: 시스템의 각 사용자가 적절한 권한으로 적절하게 정보 자산에 접근하도록 통제하는 것

- 로그 관리: 시스템 내부나 네트워크를 통해 외부에서 시스템에 어떤 영향을 미칠 경우 그 내용을 기록하여 관리하는 것

- 취약점 관리: 시스템 자체의 결함을 체계적으로 관리하는 것

 

 

운영체제 역할

- 여러 개의 사용자 어플리케이션들에게 하드웨어의 가상화를 제공

- 사용자가 하드웨어를 쉽게 사용하기 위한 추상화 (Abstraction) 및 API 제공

→ 프로세스, 가상 메모리, 파일 시스템 등

- 제한된 하드웨어 자원에 대한 원활한 공유

→ 스케줄링, 프로세스 상태 관리

- 접근 제어 및 권한을 활용한 하드웨어 자원 보호

→ 특권 계층(Privilege), 권한(Permission)

- 사용자 어플리케이션 간의 격리 (Isolation)

→ 특권 계층을 통한 Protection domain의 도입

 

>> 하드웨어와 애플리케이션의 브릿지 역할

 

 

추상화 

- 컴퓨터 시스템의 복잡도(complexity level)를 정의하고 설정함으로써, 사용자가 시스템의 복잡한 디테일들을 모르고도 시스템과 상호 작용이 가능케 해주는 기술

 

>> 프로그래머블하게 표현할 때 어떤 속성까지 표현할지 결정

 

추상화 1. 프로세스 = 실행 중인 프로그램

프로그램과 달리, 프로세스는 메모리에 주소 공간을 갖는 능동적 개체

프로세스가 제공하는 추상화는

- 프로세스 자신만의 주소 공간(address space)

- 해당 프로세스에 대응되는 프로그램 파일

 

프로세스 제어 블록 (Process Control Block : PCB)

- 프로세스 관리를 위해 유지되는 메타데이터

- 프로세스는 고유의 PCB를 가짐

- CPU에서 context switch가 발생할 때 PCB 정보를 활용

 

>> 운영체제는 실행 중인 애플리케이션을 프로세스라는 추상화를 통해 정의

가상 메모리 영역이라는 프로세스 별로 사용하는 고유의 메모리 세그먼트를 사용

여러 개의 스레드로 구성, 스레드 별로 context(e.g., 스택)를 관리하여 원활한 스케줄링을 수행

운영 체제는 PCB라는 데이터 구조를 통해 여러 개의 프로세스를 원활하게 관리

 

추상화 2. 가상 메모리 (virtual memory address space)

= 프로세스 별로 할당된 가상의 주소 공간

 

Nice abstraction! But…

제한된 물리 메모리에 어떻게 mapping 할 것인가?

→ Address translation (with MMU), 스왑(Swap)

어떻게 효율적으로 mapping을 관리할 것인가?

→ TLB, 페이징(Paging)

제한된 물리 메모리에 어떻게 mapping 할 것인가?

→ 하드웨어를 활용한 페이징(paging) 기반 주소 변환(address translation)

 

 

추상화 3. 파일 시스템

파일 시스템을 통해 보조 기억 장치, 즉 HDD 및 SSD를 추상화

운영 체제의 파일 시스템이 파일을 물리적인 디스크 저장장치와 매핑

파일을 “블록”이라는 단위로 구분하여 관리하고, physical block에 대한 매핑을 관리

파일의 raw data와 metadata(e.g., 권한, 소유자, 크기 등) 를 함께 저장하고 관리

 

리눅스 inode 

 

공유 자원 종류

명령어 실행을 위한 “시간 공유”

- 제한된 CPU 코어 수를 공유

- 해결책: 스케줄링, 프로세스 상태

코드 및 데이터 접근을 위한 “공간 공유”

- 제한된 메모리 영역을 공유

- 해결책: 페이지 교체 알고리즘, 스왑 영역

 

 

프로세스 스케쥴링

운영 체제 내 스케줄러(scheduler)가 어떠한 프로세스가 CPU를 점유할 것인지를 결정

- 프로세스에 대한 상태를 설계하고, 상태 전이를 통해 프로세스들을 관리

- 프로세스에 대한 스케줄링에서 나아가 멀티스레드 지원을 위한 스레드 스케줄링 수행

- Round Robin, Shortest Job First 등의 스케줄링 알고리즘이 존재

 

프로세스 상태 전이

실행: executed in a CPU

준비: in the ready queue

대기: in the wait queue

생성: in the job queue

 

문맥 교환 context switching

 

페이지 교체 알고리즘

페이지 교체 + 스왑 영역을 통해 제한된 메모리 영역을 효율적으로 활용

- 사용자는 실제 메모리의 크기+스왑 영역의 크기 = 전체 메모리로 인식하고 사용

- Least Recently Used (LRU), Least Frequently Used (LFU)

 

초기 운영 체제의 디자인

- 특권 계층의 개념 없이 소프트웨어 스택과 하드웨어만으로 구분되었음

 

- Problem1: 애플리케이션이 다른 애플리케이션의 실행을 방해하거나 종료시킬 수 있음

- 원인: 모든 애플리케이션이 같은 도메인(domain)에서 실행

- 해결책: protection domain의 도입 (격리)

- 보호 경계 및 도메인의 선정 기준은 앞서 미리 정의한 abstraction인 프로세스! 

- 프로세스의 메모리 영역에 대한 보호

가상 메모리가 각 프로세스 별로 private하게 만듦

문맥 교환이 일어날 시에 가상 메모리 영역 또한 switch

- 프로세스에서 접근하는 파일에 대한 보호

권한(Permission) 개념을 도입하여 파일들에 대한 접근을 보호

 

- Problem2: 애플리케이션이 OS 내 서브시스템(e.g., 시스템 서비스)를 crash 할 수 있음

- 원인: 같은 권한 계층에서 OS와 애플리케이션이 실행

- 해결책: Privilege separation (리눅스 커널의 ring 0 – ring 3)

운영체제만이 특권 계층의 명령어를 실행할 수 있음

x86 아키텍쳐 내 세그먼트 기술자(segment descriptor)의 Descriptor Privilege Level (DPL) bits

728x90

'[ Laboratory ] > Advanced Operating System' 카테고리의 다른 글

ABI stability  (0) 2025.11.17
리눅스 eBPF, kfunc  (0) 2025.11.17
리눅스 cgroup  (0) 2025.11.17
리눅스 페이지 캐시 정책  (1) 2025.11.14
[Linux Kernel] 리눅스 커널 버전 변경 빌드  (4) 2024.10.19
[5급 전산직/운영체제론] 2023년 2차 운영체제론 제2문  (1) 2024.07.28
[5급 전산직/운영체제론] 2024년 2차 운영체제론 제4문  (0) 2024.07.28
'[ Laboratory ]/Advanced Operating System' 카테고리의 다른 글
  • 리눅스 cgroup
  • 리눅스 페이지 캐시 정책
  • [Linux Kernel] 리눅스 커널 버전 변경 빌드
  • [5급 전산직/운영체제론] 2023년 2차 운영체제론 제2문
dev charlotte
dev charlotte
주 - 컴퓨터공학 / 복수 - 산업 보안
    250x250
  • dev charlotte
    int main() {
    dev charlotte
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • * Computer Security N
      • [ Laboratory ]
        • Paper review
        • Advanced Operating System
        • System Software & Storage
        • Lab etc
      • [ Computer Science ]
        • Algorithm_C++
        • Operating System
        • Information Retrieval
        • Database_sql
        • SW Engineering
        • Computer Network
        • JavaScript
        • Python
        • Data Structure
        • CS study
        • Distributed systems
      • [ Computer Security ]
        • Convergence Security
        • Web Security
        • PIMS
        • Network Security
        • Digital Finance
      • [ Artificial Intelligence ]
        • Trend
        • Seminar
      • [ 미래, 같이, LG ]
      • [ Development ]
        • [ Front-end ]
        • [ Back-end ] Spring 기본
        • [ Back-end ] Node.js
      • etc
        • 현대오토에버 스마트 모빌리티 공학 체험 교육
      • It's me
  • 블로그 메뉴

    • 링크

      • GitHub
    • 공지사항

    • 인기 글

    • 태그

      코딩 인강
      ACM
      티스토리챌린지
      프로그래머스 입문
      코딩 교육
      프로그래머스
      공대생 대외활동
      현대오토에버
      오블완
      스마트모빌리티공학체험교육
      코드잇
      MySQL
      자바스크립트
      싸피 13기
      프로그래머스 코테
      SSAFY
      SQL
      현대오토에버 스마트 모빌리티
      싸피
      소프트웨어 공학
      대학생 대외활동
      프로그래머스 c++
      데이터베이스
      백준
      spdk
      비전공자 코딩
      ssafy 13기
      프로그래밍 언어론
      hotstorage
      현대오토에버 스마트모빌리티
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    dev charlotte
    [시스템 보안] 시스템 보안을 위한 컴퓨터 시스템, 운영체제 복습
    상단으로

    티스토리툴바