[OS 공룡책] Ch01. Introduction

Jnary·2024년 1월 21일
0

Operating System

목록 보기
3/14
post-thumbnail

Chapter 1: Introduction

Firmware

  • 어셈블리어(ASM), C로 구현
  • 어떤 컴퓨터를 만들든지 간에 무조건 있어야하는 것

Kernel

  • 사실상 os가 아닌 커널에 관한 수업
  • 커널 + 사용자 친화적 요소 = OS

Hardware

  • CPU
  • memory
  • I/O device

Bootstrap program

  • UEFI (BIOS)
    • CPU, Memory, I/O
  • Boot loader
  • Kernel
    • 여기서부터가 OS
  • 하드웨어 바탕의 single-core, single-memory 라고 가정
    • Single-Thread
    • Multi-Thread

multi-process 왜 써 ?

  • core가 하나일 경우, 고장날 경우 끝 → 높은 신뢰성
  • 높은 결함 허용

Multiprogramming

  • 초창기 A→B→C : 줄세우기 (한 번에 하나의 프로그램만)
  • 한 번에 여러 개의 프로그램을 실행 시키도록 OS를 똑똑하게 구동시키는
  • Batch 시스템을 지원하는 것 → Batch : 모아서 던져주는 것
  • 프로그램이 하는 일 : 1. 계산 2. I/O ←분할
  • A1 → B1 → A2 → C1 → B2 → C2 C1 시점에서 보면 A, B, C가 다 돌아가고 있음

Multitasking

  • Multiprogramming보다 더 개선된 개념
  • time quantum
  • CPU time을 같이 나눠갖는 작업 : CPU Schduler가 하는 일
  • OS가 Virtual memory 지원
    • 물리 메모리 크기에 상관없이 가상의 공간 사용
    • 가상 공간에 있는 데이터를 물리 메모리에 Mapping
  • swapping 지원
    • 메모리가 아닌 storage로 보내버리는 것
    • 프로세스는 메모리에 있다고 생각
    • 필요할 때 OS가 swapping을 통해 다시 가져옴

OS가 지원하는 기능

  1. Virtualization 가상화
  2. Concurrency 병행성
  3. Persistency 지속성

Kernel 하는 일

  1. 프로세스 관리

  2. 메모리 관리

  3. 저장요소(Storage) 관리

    • I/O뒤에 있는 비휘발성 장치
  4. I/O 관리

    → Kernel을 덧붙여주는 게 OS

Protection & Security

  • Protection : 접근 권한 보호 → 커널 기능은 X, OS가 하는 일
  • Security : 외부 공격으로부터 보호

Open-Source Operating Systems

  • GNU 프로젝트의 핵심 : Linux가 되는 것, 스톨만
  • Linux 창시자 : Linus 리누즈 토발리스 → 커널
  • GNU/Linux : GNU 프로젝트에 Linux를 집어넣은 것 → 퍼블릭 라이센스를 가지고 다 합쳐놓은 유틸리티 (OS)
  • gcc : gnu compiler
profile
숭실대학교 컴퓨터학부 21

0개의 댓글