학교수업/운영체제

운영체제 및 보안 - Lecture 1. Introduction

정보보호학과 새내기 2025. 4. 13. 21:39

세종대학교 - 운영체제 및 보안 수업

Introduction

  • 운영체제란?
  • 이전 운영체제
    • simple batch systems
    • multiprogrammed batch systems
  • Time-Sharing system
  • Personal Computer Systems
  • Parallel and Distributed Systems
  • Real-time Systems

컴퓨터 시스템 아키텍쳐

  • 시스템 버스(연결 통로)에 각종 하드웨어 연결되어있는 형태
    cpu, disk controller, printer controller, tape-drive controller (펀치 뚫어서 하는게 있었음)
  • memory controller로 메모리와 연결

운영체제란?

  • 운영자와 컴퓨터 하드웨어 중간에서 역할 하는 프로그램 (즉 운영체제도 프로그램)
  • 일반적인 컴퓨팅의 주요 대상 -> 소프트웨어
    • os는 응용프로그램 실행의 복잡성을 간소화하고 효율적으로 관리

운영체제 목표

  • 응용프로그램 실행 간소화 및 유저 문제 해결 용이
  • 컴퓨터의 하드웨어 효율적 사용
    • 하드웨어와 소프트웨어 간 자원 공유 허용
    • (자원이 한정되어 있으므로)
  • 응용 소프트웨어를 휴대성 있고 다재다능하게 만듦
  • 유저 프로그램들의 보호와 보안 독립성을 제공
    • (realtime os 에서는 더 중요, 자동차나 특정 기계에서 오류 하나 때문에 문제가 연쇄적으로 반응하면 큰일나기 때문)
  • 전체 시스템 신뢰성 향상
    • 에러 제한, 내결함성(시스템 일부 구성요소가 작동하지 않더라도 계속 작동할 수 있는 기능), 재구성

운영체제 공부 이유

  • 하드웨어와 응용프로그램 간의 상호작용을 이해하기 위해
    • 새로운 애플리케이션, 새로운 하드웨어
    • 오늘날 사회 고유의 관점
  • 컴퓨터 시스템 설계의 기본 원리를 이해하기 위해
    • 효율적인 자원 관리, 보안, 유연성
  • 특화된 운영체제 필요 중가
    • 임베디드 os (휴대폰, 센서, 조종기)
    • 리얼타임 os (비행장치 조종, 멀티미디어 서비스)

하드웨어와 소프트웨어 복잡성 증가

  • (운영체제 소스코드가 왜 많아졌냐)
  • (무어의 법칙에 따라 하드웨어가 받쳐줘서 그냥 짜는 형식이 많아짐)

컴퓨터 시스템 요소

  • 하드웨어

    • 기본 컴퓨팅 리소스 제공 (CPU, 메모리, 입출력 기기)
  • 운영체제

    • 응용 프로그램이 하드웨어를 이용하는 것을 조종하고 조정함
  • 응용 프로그램

    • 사용자의 컴퓨팅 문제를 해결
      • (컴파일러, DB 시스템, 비디오 게임, 업무 프로그램 ex 은행 프로그램)
  • 사용자

    • 사람들, 기계들, 다른 컴퓨터들

운영체제 관점

  • 자원 할당자
    • 컴퓨터 시스템 자원(소프트웨어, 하드웨어)을 할당하고 효율적으로 관리
  • 제어 프로그램
    • 사용자 프로그램의 실행과 입출력 장치의 작동을 관리
  • 커널
    • 시스템이 작동하는 한 계속 실행되어야하는 프로그램
    • os가 커널에서 작동함

OS 스펙트럼

  • 모니터와 작은 커널
    • 특수한 목적 및 임베디드 시스템, 리얼타임 세스템
  • Batch, multiprogramming
  • Timesharing
    • 워크 스테이션, 서버, 미니 컴퓨터, 파임프레임
  • Transaction system (거래 시스템)
  • 개인 컴퓨터 시스템
  • 모바일 플랫폼, 모든 사이즈 기기들

이전 운영체제 시스템들

Bare Machine (1950's)

  • 하드웨어 비쌈, 사람 쌈
  • 구조
    • 대형기계가 콘솔에서 실행
    • 단일 사용자 시스템
      • 프로그래머와 사용자는 작동자
    • 종이 테이프와 펀치 카드
  • 이전 소프트웨어
    • 어셈블리어, 컴파일러, 링커, 로더, 기기 드라이버, 공통된 단순 반복 라이브러리
  • 보안 실행
  • 비싼 자원을 사용해서 비효율적
    • CPU 낮은 사용율, 설정 시간 오래 걸림

Simple Batch Systems (1960's)

  • 유사한 요구 사항 가진 batching 프로세스를 사용하여 설정 시간 줄임
  • 카드 리더기를 늘리고, 작동자 고용
    • 사용자랑 운영자랑 다름
    • 자동 작업 순서 지정
      • 기본 os 형성
    • 레지던트 모니터
      • 초기 제어를 유지하고, 프로세스 전환을 제어하고 모니터로 돌아옴
    • 문제
      • 프로그램에서 프로세스와 데이터를 구분해야함

감독자/운영자 제어

  • 보안 모니터가 프로세스를 제어
    • 특정 카드들이 해야할 것을 알려줌
    • 사용자 프로그램이 입출력을 방지한다.
  • 컴퓨터와 사람 분리
    • 사용자가 카드 덱을 제출
    • 카드가 테이프에 들어감
    • 테이프가 작업자에 의해 실행
    • 결과가 테이프에 적어져 나옴
    • 테이프가 프린터에 프린트됨
  • 문제
    • 2일이나 걸릴 정도로 오래걸림
    • CPU 사용률 적음
      • 입출력 장치와 CPU가 오버랩 되지 않아 기계적 장치가 느려짐

Batch 시스템 - 문제

  • 입출력 장치 속도 올리는 해결법
  • 오프라인 진행
    • 테이프에서 메모리로 로드하는 작업, 카드 읽기, 라인 프린팅 등이 오프라인으로 수행
  • 스풀링
    • 디스크 (랜덤 엑세스 장치)를 가능한 많은 입력 파일들을 읽고 출력 장치가 그들을 받아들일때 까지 결과 파일을 저장하는 큰 저장소로 사용
    • 중복 허용 - 작업의 입출력과 다른 작업의 계산을 허용
    • Os가 Cpu 사용율을 높이기 위해 다음 실행작업을 선택할 수 있도록 작업 풀의 개념을 도입

입출력 속도 올리기

  • 채널 생성해서 분리 연결

Batch 시스템 - 입출력 완료

  • 입출력 완료 알 수 있는 방법
    • 폴링 (상태를 주기적으로 확인하는 것)
      • 수행 중이면 장치가 플래그 세팅하기
      • 입출력 완료 반복을 기다리고 있는지 프로그램이 테스트함
    • 인터럽트
      • 입출력이 완료되면, 기기가 cpu가 특정 instruction 주소에 점프를 수행하도록 지시, 서비스 반복을 인터럽트 하는것을 포함한 인스트럭션 주소에
      • 인터럽트가 발생하면, CPU는 인터럽트 수행하는 우선순위에 있는 실행하는 코드를 반환

다중 프로그래밍

  • 인터럽트를 사용하여 여러 프로그램을 동시에 실행
    • 프로그램이 입출력을 수행할 때, 폴링 대신, 인터럽트가 수신될 때까지 다른 프로그램을 실행시키기
  • 각 프로그램에 보안 매모리와 입출력 장치가 필요
    • (여러 개 메모리 동시 사용 -> 보안 필요해짐, I/O도 각각 필요)
  • 프로그램이 무한이 반복되는 경우 개입 필요
  • 실행할 다음 작업을 선택하는 CPU 스케줄링 필요

TimeSharing

  • 하드웨어 싸지고, 사람 비싸지고
  • 선입선출 순서로 큐(실행 대기열)에 있는 프로그램
  • 멀티프로그래밍과 비슷하지만 타이머가 양자(시간 슬라이스) 후에 인터럽트함.
    • 인터럽트된 프로그램은 선입선출 끝으로 반환됨
    • 다음 프로그램은 선입선출의 헤드에서 가져옴
  • 제어 카드 인터프리터가 명령 언어 인터프리터로 대체됨
  • 상호작용 (액션/반응)
    • 운영체제가 한 명령어의 실행을 종료하면, 사용자로부터 다음 제어문을 요구함
  • 파일 시스템
    • 유저가 데이터와 코드에 접근을 위해 온라인 파일 시스템이 필요
  • 가상 메모리
    • 프로세스가 메모리에서 디스크로 인아웃함.
    • (메모리 관리와 관련)

개인 컴퓨터 시스템

  • 하드웨어 싸고, 사람 비쌈
  • 사용자 혼자 시스템, 휴대 가능
  • 입출력 장치 - 키보드, 마우스, 모니터, 작은 프린터
  • 노트북과 휴대용 컴퓨터, 스마트 카드, 무선 기기들
  • 개인 사용자 시스템은 향상된 CPU 실행율과 보호 기능이 필요하지 않음
    • (우선순위 생김 -> 우선순위별 응답속도 영향)
  • 장점
    • 사용자 편의성, 반응성, 유비쿼터스

병렬 시스템

  • 하나 이상의 cpu를 가진 멀티프로세서 시스템, (이 cpu간 밀접한 소통 가짐)
  • 향상된 처리량, 경제성, 향상된 신뢰성
  • 종류
    • 백터와 파이프라인
    • 대칭과 비대칭 멀티프로세싱
    • 분산 메모리 vs 공유 메모리
  • 프로그래밍 모델
    • 긴밀하게 결합 vs 느슨한 결합, 메시지 기반 vs. 공유 기반

분산 시스템

  • 하드웨어 매우 쌈, 사람 굉장히 비쌈
  • 많은 프로세서에 계산 분배
  • 느슨하게 결합된 - 공유 메모리 없음, 다양한 통신 회선
  • 클라이언트/서버 아키텍쳐
  • 장점
    • 자원 공유
    • 계산 속도 향상
    • 신뢰성
    • 커뮤니케이션 - 이메일
  • 응용 프로그램 - 디지털 라이브러리, 디지털 멀티미디어

리얼타임 시스템

  • 시스템 기능이 올바르려면 적시성이 중요
  • 피드백 / 제어 루프
  • 센서 및 실행자
  • realtime 하드 시스템
    • 응답 시간이 너무 길면 실패
    • 보조 저장 공간이 제한적
  • realtime 소프트 시스템
    • 응답 시간이 너무 길면 정확도 떨어짐
    • 멀티미디어, 가상 현실과 같은 응용프로그램에 유용