[운영체제] 01. Introduction

유니·2021년 10월 4일
0

운영체제

목록 보기
1/3

🖥 OS (Operating System)

OS는 소프트웨어로 전자장치가 있는 디바이스에 대부분 올라간다.

  • 하드웨어 제어, 관리 + application 만들 수 있게 환경을 제공
  • 효율성 + 안정성

✍️ Abstraction

OS는 device위에 올라가는데 device마다 사용하는 부품이 다르기에 제어 방식이 다르다.
이에 하드웨어에 관계없이 application이 돌아가도록 해주는게 OS

Abstraction : 하드웨어에 종속받지 않고 동일한 기능을 수행할 수 있도록 함
BUT OS가 제공하는 api만 사용 + 모든 프로그램 제어권은 OS가 가짐

✍️ Managing

여러 application이 한번에 돌아가고 싶은데 하나의 CPU는 한 순간에 한 프로그램만 실행 가능하다.
여러 application이 각각 다른 하드웨어 잡고 있는 상황이면 아무것도 실행되지 않는다.
이 것을 해결해주는게 OS

Managing : 모든 application을 관리해 중간에 조율, 요청을 조합해 H/W 자원을 나눠줌
OS가 모든 application을 관리하기에 application은 H/W 직접적으로 사용 못함

application은 OS에 요청하고 OS는 필요시 RAM을 제어한다.

✍️ Computer System Structure

User or Developer
Application
OS
H/W


🖥 Computer System

  • 폰노이만 구조 - 연산장치와 기억장치가 분리되어 있는 구조
  • System Bus
    : device와 device간 데이터가 전달되는 통로 + 통신규약

✍️ 연산장치

📍 CPU & 그래픽 카드

아무것도 가지고 있지 않고 그냥 input이 들어오면 output을 내주는 것
시키는 것만 처리하고 계산을 빠르게 하는 연산장치일 뿐이다.

✍️ 저장장치

📍DRAM & SSD & 하드디스크

정보를 기억하고 저장 - bit 단위 정보 저장, 갱신 등

memory가 storage마다 특성이 달라서 어떻게 사용하느냐에 따라 효율성이 다름
memory를 어떻게 사용하냐가 OS가 해야하는 일

RAM (Random Access Memory)

  • 어떤 위치든 한번에 접근해 읽을 수 있음
  • DRAM : 계속 충전해줘야 함 + 속도가 느림
  • SRAM : 충전 안해줘도 됨 + 저장하는데 비용이 더 비쌈

보통 메인 메모리로 DRAM을 많이 쓰는데 그 이유는 DRAM이 더 빠르기 때문이다.
따라서 CPU에게 명령하고 데이터를 직접적으로 전달하는 건 DRAM

CPU

  • 계산하기 위한 데이터 저장 공간 : register
  • 매우 빨라서 CPU와 연결된 메모리는 빨라야 함

SRAM

  • DRAM보다 더 빠르나 크기는 작음
  • DRAM에서 자주 쓰는 정보 저장해 둠 : Cache
  • 자주 본 건 꺼내서 빠르게 계산 가능

DRAM

  • 메인 메모리로 빠름
  • RAM은 전원이 공급이 안되면 정보가 사라짐

SSD

  • 느림
  • 전원이 꺼져도 정보가 남아있음

따라서 정보를 SSD에 저장 후 전원 off, 전원이 들어오면 RAM에 옮김
👉 정반대 특성 + 상호보완성

📍 Example : Booting

  • 메모리로 OS kernel을 load 후 실행
  • booting 할 시스템의 위치로 가서 실행 : Bootstrap

Bootstrap program : ROM

ROM이라는 지워지지 않는 메모리에 들어있음 * 요즘은 flash memory

RAM 👉 Cache level 3 - 2 - 1 👉 CPU register

✍️ 요약

📍 DRAM

휘발성
main memory로 CPU에 명령과 데이터를 주며 CPU와 대면한다.

📍 Secondary Storage

비휘발성
하드디스크보다 요즘 flash memory를 더 많이 씀

📍 Caching concept

엄청 빠른 것과 크고 느린 것 사이에 자주 쓸 건 중간으로 옮겨 전체 시스템의 성능을 높이는 것

✍️ System Bus

  • processor와 memory를 연결하기 위한 신호가 전달되는 통로
  • System bus의 한계
    • bus의 길이, 재질에 따라 속도가 다름 - switch 방법을 사용하기도 함

✍️ Multi-core Precessor

하나의 칩에 여러 개의 core를 넣음

📍 Advantage

  • 처리할 수 있는 양이 늘어남
  • 규모가 커짐
  • 코어가 하나 나가도 나머지로 안정적으로 동작할 수 있음

📍 type

  • Asymmetric Multiprocessing
    • OS가 대장 core에게 명령 전달, 대장 core가 나머지에게 명령
  • Symmetric Multiprocessing
    • 네 개의 core가 동등해 OS에서 분배

✍️ 정보

bit : 있다 없다를 표현할 수 있는 가장 작은 정보
byte (8 bit) : 메모리 주소의 기본 단위
memory 👉 8개 단위로 끊어서 저장 = 하나의 주소에 한 byte 저장되어 있음
data storage (write) : 0과 1로 변경하는 것
data retrieval (read) : 특정 주소의 현재 상태를 읽어올 수 있음

Assembler : assembly를 binary로 바꿔주는 것
Complier : high level language를 assembly로 바꿔줌


🖥 User Interface

✍️ CLI

shell을 이용해 명령을 줌

✍️ GUI

클릭해서 실행


🖥 Computing Environments

✍️ 분산 시스템

어떤 일을 다른 PC, 어떤 일은 서버에서

✍️ Virtualization

hypervisor와 VM 혼용되어 사용
운영체제 위해 VM 깔고 그 위에 kernel

✍️ Cloud Computing

real-time embedded system - 정해진 시간 내에 명령 완료되는게 보장이 되냐

✍️ Time-sharing Program

번갈아가며 프로그램 실행 - 동시에 작동하는 것처럼 보임

0개의 댓글