운영체제 11-15강

yoneeki·2025년 4월 5일

knou

목록 보기
11/14

운영체제 11강

장치 관리와 입출력 시스템


✅ 장치의 개념

  • 입출력 장치(I/O devices)는 프로세스 실행 시 데이터 입출력에 사용
  • CPU, 메모리 외: 디스크, 키보드, 마우스, 프린터, 네트워크 카드 등

● 장치 종류

  • 전용장치: 하나의 프로세스에만 할당 (예: 프린터)
  • 공유장치: 여러 프로세스에 동시에 할당 가능 (예: 디스크)
  • 가상장치: 공용장치를 전용처럼 보이게 함 (예: 스풀링 프린터)

✅ 장치 구성

  • 장치제어기(Controller): 장치를 직접 제어하는 하드웨어
  • 장치드라이버(Driver): 운영체제와 장치제어기 사이 소프트웨어 인터페이스
  • 운영체제가 입출력 명령을 장치제어기가 이해할 수 있는 형태로 전달

✅ 메모리 매핑 입출력

  • 장치제어기의 레지스터를 메모리 공간에 매핑
  • CPU는 메모리 접근처럼 I/O 장치를 제어

✅ 입출력 처리 방식

● 1. 프로그램 방식

  • CPU가 장치 상태를 직접 반복 확인하며 입출력 처리 (Polling)

● 2. 인터럽트 방식

  • 장치가 입출력 가능 상태가 되면 인터럽트 신호 발생
  • CPU는 인터럽트를 받아 입출력 처리

● 3. DMA (Direct Memory Access)

  • CPU를 거치지 않고, DMA 제어기가 메모리와 I/O 장치 간 데이터를 직접 전송
  • CPU는 명령만 내리고, 데이터 이동은 DMA가 수행
  • 데이터 전송 완료 후 인터럽트로 CPU에 알림

✅ 입출력 최적화 기법

● 버퍼링(Buffering)

  • I/O 장치와 프로세스 간 속도 차이를 보완
  • 중간 버퍼를 통해 병렬 처리 가능

● 스풀링(Spooling)

  • 데이터를 디스크에 임시 저장 후 출력
  • 출력 장치를 전용처럼 사용 가능 (예: 인쇄 작업 큐)

✅ 요약

  • 장치 관리의 핵심은 하드웨어 제어, 입출력 방식, 최적화 기법
  • 프로그램/인터럽트/DMA 방식으로 입출력 처리
  • 효율적 입출력을 위한 버퍼링, 스풀링 사용

운영체제 12강

저장장치 종류, 디스크 스케줄링, 파일 관리


✅ 저장장치의 종류

● 자기 디스크 (Hard Disk)

  • 자기 성질을 띤 디스크 표면에 데이터를 기록
  • 구성: 플래터, 트랙, 섹터, 실린더
  • 헤드 암이 트랙 이동, 섹터에서 읽기/쓰기

● 광 디스크 (Optical Disk)

  • 레이저 반사 이용 (예: CD-ROM, DVD, 블루레이)
  • 하나의 나선형 트랙

● 플래시 메모리 (SSD 등)

  • 비휘발성, 고속, 저전력
  • 자기 디스크보다 빠르나 가격이 높고 수명 짧음

✅ 디스크 스케줄링 알고리즘

  • 목표: 탐색시간(헤드 이동), 회전지연시간 최소화

● FCFS (First-Come First-Serve)

  • 도착 순서대로 처리 → 공평하나 평균 응답시간 김

● SSTF (Shortest Seek Time First)

  • 현재 위치에서 가장 가까운 요청부터 처리
  • Belady 현상 없음, 기아 상태 가능

● SCAN (엘리베이터 알고리즘)

  • 한 방향으로 진행하다 끝에서 방향 전환
  • 끝 트랙은 한 번만 처리됨

● C-SCAN (Circular SCAN)

  • 한 방향으로만 이동하고 끝에서 다시 시작점으로 이동
  • 응답 시간 편차 최소화, 기아 방지

● LOOK / C-LOOK

  • SCAN/C-SCAN 최적화, 요청 있는 트랙까지만 이동

✅ 파일 시스템 개요

  • 파일: 저장된 데이터 집합
  • 파일 시스템: 파일을 저장하고 관리하는 OS의 핵심 구성

● 기능

  • 접근/보호
  • 저장 공간 할당
  • 데이터 무결성 보장

✅ 파일의 저장 방식

● 순차 파일

  • 논리적 순서 = 물리적 순서
  • 테이프 등 순차 접근 매체에 적합

● 인덱스 순차 파일

  • 키 기반 논리 순서, 주요 레코드 주소를 인덱스로 관리
  • 순차/직접 접근 모두 가능

● 직접 파일

  • 키 → 물리 주소로 직접 매핑
  • 해시 함수 등으로 구현

✅ 공간 할당 방식

● 연속 할당

  • 연속된 블록에 파일 저장
  • 빠른 접근, 외부 단편화 발생, 파일 확장 어려움

● 연결 할당

  • 블록 단위로 저장, 포인터로 연결
  • 단편화 해결, 랜덤 접근 비효율

✅ 요약

  • 저장장치는 자기 디스크, 광 디스크, 플래시 메모리 등
  • 디스크 스케줄링은 FCFS, SSTF, SCAN, C-SCAN 등 존재
  • 파일은 순차, 인덱스, 직접 방식으로 저장 가능
  • 공간 할당은 연속/연결 방식으로 이루어짐

운영체제 13강

분산 운영체제 개요


✅ 분산 운영체제란?

  • 네트워크로 연결된 여러 대의 컴퓨터가 단일 시스템처럼 동작하게 만드는 운영체제
  • 자원 공유, 병렬 처리, 고장 허용, 투명성 제공 등

✅ 분산 운영체제의 특징

● 자원 공유

  • 네트워크를 통해 프린터, 저장장치 등 공유
  • 예: 1000대 컴퓨터가 각각 256GB 저장장치를 공유

● 병렬 처리

  • 작업을 여러 프로세서에 나눠 병렬 수행
  • 다수의 클라이언트 요청을 여러 서버가 처리

● 고장 허용성

  • 일부 컴퓨터에 장애가 발생해도 다른 컴퓨터가 대체 수행
  • 중복된 하드웨어/데이터 구성으로 신뢰성 확보

● 투명성

  • 사용자에게는 하나의 시스템처럼 보임
  • 파일 이동, 자원 접근 등이 자동화됨

✅ 네트워크 구조

구조특징장단점
완전연결모든 노드 직접 연결신뢰성↑, 비용↑
트리형계층적 연결고장에 민감
스타형중심 노드 중심중심 고장 시 전체 연결 끊김
링형이웃과만 연결일부 고장 시 분리 위험
버스형공유 버스 연결버스 고장 시 전체 중단

✅ 자원 투명성

  • 로컬/원격 자원의 구분 없이 접근 가능
  • 운영체제가 자동으로 처리
  • 종류:
    • 데이터 이주: 데이터를 원격지로 가져옴
    • 계산 이주: 연산을 원격에서 수행
    • 프로세스 이주: 전체 프로세스를 원격지로 이동

✅ 분산 파일 시스템

  • host:local_name 형식으로 파일 식별
  • 원격 디렉터리를 로컬 디렉터리에 마운트 가능
mount -t nfs 10.10.10.10:/backups /var/backups

✅ 분산 메모리

  • 원격 메모리 접근 또는 분산 공유 메모리
  • 주소 형식: <(net#, host#, port#), block, offset>

● 장점

  • 확장성 우수
  • 복잡한 데이터 처리에 유리
  • 큰 가상 메모리 공간 제공

● 단점

  • 느린 접근 속도
  • 보호 메커니즘 필요
  • 직접 제어 어려움

✅ 원격 프로시저 호출 (RPC)

  • 로컬처럼 보이지만, 원격 서버에서 함수 실행
  • 스텁(stub)이 네트워크 메시지 생성/전송 처리

● 특징

  • 호출/응답은 메시지 형태
  • 메모리 주소 반환 불가능 (다른 주소 공간이기 때문)
  • 수신자는 유사한 환경에서 실행되어야 함

● RPC 동작 흐름 요약

  1. 클라이언트가 원격 함수 호출
  2. 스텁이 메시지 포장 및 전송
  3. 서버 수신 → 함수 실행 → 결과 전송
  4. 클라이언트 스텁이 응답 수신 및 반환

✅ 요약

  • 분산 운영체제는 여러 시스템을 하나처럼 사용하게 해줌
  • 자원 공유, 병렬 처리, 고장 허용성, 투명성 등이 핵심
  • 분산 파일/메모리 시스템, RPC 등의 기술로 구현됨

운영체제 14강

운영체제 보안


✅ 운영체제 보안 개요

  • 자원의 독립성과 안전한 공유 보장
  • 각 프로세스의 영역 보호
  • 인증/암호화를 통해 합법적 사용만 허용
  • 시스템 신뢰성과 무결성 보장

✅ 보안의 3요소

요소설명
기밀성허가되지 않은 접근 방지 (정보 유출 방지)
무결성정보가 불법적으로 변경되지 않도록 보장
가용성합법적인 사용자는 언제든지 자원을 사용할 수 있어야 함

✅ 보안 침해 예시

  • 권한 도용, 비인가 접근 (기밀성 침해)
  • 데이터 변경/삽입 (무결성 침해)
  • 시스템 파괴, 서비스 불가 (가용성 침해)

✅ 악성 코드 유형

유형설명
트로이 목마사용자 권한으로 시스템 침투
백도어인증절차 없이 우회 접근 허용
은밀 채널비인가된 경로로 데이터 교환
자기 복제로 전파
바이러스다른 프로그램 감염 후 전파

✅ 보안 정책과 메커니즘

  • 보안 정책: 무엇을 어떻게 보호할지에 대한 기준 (접근제어, 최소권한 등)
  • 보안 메커니즘: 보호 방법 (암호화, 인증, 등급 관리 등)

✅ 접근 제어

  • 주체(사용자)가 객체(자원)를 어떤 방식으로 접근할지 결정
  • 식별: ID 등으로 사용자 구별
  • 인증: 사용자 신원 확인

✅ 접근 제어 방식

● 능력 기반 (DAC)

  • 자원 소유자가 권한 부여
  • 자원 공유 중심, 유연하나 추적 어려움

● 강제 접근 제어 (MAC)

  • 등급 기반 제어 (주체/객체 등급 비교)
  • 보안 정책 강제 적용, 공유 어려움

● 역할 기반 (RBAC)

  • 역할에 따라 권한 부여
  • 제약, 역할 계층, 세션 개념 포함

✅ 최소 권한 원칙 & 감사

  • 최소 권한: 임무 수행에 필요한 권한만 부여
  • 감사(Audit): 이벤트 기록 및 추적
  • 로그 변조 방지 → 접근제어 및 암호화 사용

✅ 보안 기능 구현 방법

● 사용자 식별 및 인증

  • 고유 ID 부여, 비밀번호/다요소 인증 사용

● 접근 제어

  • 접근제어 리스트(ACL), 유닉스 권한 체계 등

● 보안등급 관리

  • 사용자/자원에 등급 부여, 로그 암호화 저장
  • 관리자 권한 세분화

✅ 운영체제 수준 보호 방법

● 모드 분리

  • 사용자 모드 / 커널 모드
  • 특권 명령은 커널 모드에서만 실행

● 메모리 보호

  • 기준 레지스터 / 한계 레지스터로 주소 제한

● CPU 보호

  • 타이머 장치로 무한 루프 방지

● I/O 보호

  • 입출력은 커널 모드에서만 가능

✅ 암호 기법

방식특징
대칭키하나의 비밀키로 암호화/복호화, 속도 빠름
공개키공개키로 암호화, 개인키로 복호화
전자서명공개키 기반 인증

✅ 운영체제 보안 모델

● 참조 모니터

  • 주체의 접근 요청을 감시 및 허용 여부 판단

● 보안 커널

  • 참조 모니터 포함, 핵심 보안 기능 포함한 커널 영역

✅ 보안 모델 예시

● BLP 모델 (Bell-LaPadula)

  • 기밀성 중심
  • "읽기는 낮게, 쓰기는 높게" → 정보 유출 방지

● Biba 모델

  • 무결성 중심
  • "읽기는 높게, 쓰기는 낮게" → 데이터 오염 방지

✅ 요약

  • 보안의 핵심은 기밀성, 무결성, 가용성 보장
  • 침입 방지 위해 정책/메커니즘 구분하여 적용
  • 운영체제는 접근제어, 모드 구분, 암호화 등으로 보호
  • 보안 모델(BLP, Biba)로 정책을 시스템에 적용

운영체제 15강

운영체제 응용 및 최신 동향 (Linux, Windows, Android 등)


✅ MINIX

  • 교육용 소형 운영체제
  • 마이크로커널 구조 기반
  • 소스코드 공개 → 필요 없는 부분 제거 가능
  • 리눅스 개발에 영감 제공

✅ Linux

  • 대부분 C 언어로 작성되어 이식성 뛰어남
  • 모듈화 구조: 커널 교체 없이 기능 추가 가능
  • IPC 기능: 세마포어, 메시지 큐, 공유 메모리 등
  • 파일 시스템 지원: ext4, FAT, NTFS, HPFS 등
  • 무료, 오픈소스, 많은 사용자와 개발자 생태계
  • 최신 동향을 빠르게 반영
  • 실시간 시스템 대응 가능 (제약 있음)

● 임베디드 시스템에서의 Linux

  • 센서, 제어기 등을 통한 정보 수집/처리
  • 소용량 메모리 환경 → OS 크기 최소화 필요
  • 저성능 CPU 환경 → 성능 최적화 필수
  • 경성/연성 실시간 시스템 대응 필요
구분설명
경성 실시간반드시 마감시간 내 작업 완수 (예: 항공 제어, 심박동기)
연성 실시간마감시간 내 수행이 바람직하지만 실패해도 허용 (예: 동영상 재생)

✅ Windows

  • Win32 API, POSIX, OS/2 등 지원
  • 사용자 친화성과 보안, 신뢰성 결합 (NT 기반)
  • 커널 모드 구성요소:
    • I/O 관리자, 보안 참조 모니터, GDI, LPC, 가상 메모리, 객체 관리자 등
  • 사용자 모드: Win32, OS/2, POSIX 하위 시스템 운영

● 특징

  • NT API가 커널/사용자 모드를 연결
  • 자원 접근 여부 및 보안 처리
  • 모든 자원을 객체로 간주
  • 프로세스 간 정보교환 및 자원 관리 구조화

✅ Android

  • 저전력, 무선 연결, 터치 중심 인터페이스
  • 고수준 UI + 저수준 OS의 결합 형태
  • Java 기반, 다양한 하드웨어에 이식 가능
  • 기기별 파편화 이슈 존재

● 성능 처리 방식

  • 설치 시 중간 코드 → 기계어 변환 수행 (AOT 컴파일)
  • 이후 실행 시 변환된 코드 재사용
  • 설치 시간이 오래 걸리지만 실행 성능은 향상

✅ 요약

  • 운영체제는 다양한 응용 환경에 적합하게 진화 중
  • Linux: 모듈화, 오픈소스, 임베디드/실시간 대응
  • Windows: NT 기반 구조, 보안/신뢰성 강화
  • Android: 모바일 친화, 파편화 이슈 및 AOT 컴파일 방식 채택
profile
Working Abroad ...

0개의 댓글