[운영체제] 1. Introduction

Kim Nahyeong·2021년 10월 12일
0

운영체제

목록 보기
1/3

운영체제란 무엇인가?

사용자와 컴퓨터 하드웨어 사이에서 중간 다리 역할

  • 사용자의 문제 해결
  • 컴퓨터 시스템 편리하게 만듦
  • 컴퓨터 하드웨어 효율적으로

컴퓨터 시스템 구조

  • 하드웨어 (CPU, Memory, I/O 장치 등)
  • 운영체제
  • 어플리케이션 프로그램(컴파일러, 웹 브라우저 등등)
  • 사용자

Application - middleware - OS(system software)

Computer System Organization


OS는 이 하드웨어 구성 요소들을 어떻게 핸들링하는지를 결정한다.

ex)

  • 디바이스 드라이버
  • 인터럽트 기반 처리
    (I/O에서 움직임 발생하면 interrupt 시킨다. OS에서 그걸 처리하는 것)
    기타 등등

그러니까 중앙 관리자? 생각하면 좋을 것 같다. PM같은 느낌적인 느낌?

Storage Structure 저장장치 구조

  • 메인 메모리
    : 휘발성, RAM -> 실행하는 프로그램이 올라간다, 컴퓨터 끄면 다 까먹음!
  • 보조 기억 장치
    : 비휘발성, HDD -> 컴퓨터 꺼도 저장되어있다.

Storage-Device Hierarchy

a.k.a 메모리 계층 구조

레지스터보다 위에 CPU가 있다. 레지스터는 CPU 안에 위치한다.

레지스터란?

  • 극히 소량의 데이터나 처리중인 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역, 현재 수행하는 값 기억

    그냥 단순하게 말해서 CPU 가까운데 저장해두고 빨리 빨리 끌어 쓰기 위해서 쓰는 메모리라는 뜻


자기 테이프 아래에 이제 외장하드, 클라우드 서버가 있다고 보면 되겠다.
상위 계층으로 올라갈수록 값도 비싸다. 빠르고 작으면 역시 비싼 법이다.

cache
: CPU와 메모리 사이에 자주 쓰는 것을 가까운 곳에 저장하기 위해 사용하는 메모리
메인 메모리에 있는 데이터를 캐시 메모리에 불러와 두고, CPU가 필요한 데이터를 캐시에서 먼저 찾도록 하면 시스템 성능을 향상시킨다.

뭐야 레지스터랑 캐시랑 하는 일이 똑같네?

Q) 레지스터와 캐시의 차이?

A) 캐시는 cpu와 별도로 있는 공간이며, 메인 메모리와 cpu 간의 속도 차이를 극복하기 위한 것이라는 것이고
레지스터는 cpu 안에서 연산을 처리하기 위하여 데이터를 저장하는 공간

그러니까
레지스터는 지금 쓰는 변수의 값을 계속 빠르게 쓰게 저장소에 따로 저장,
캐시는 초고속으로 사용할 수 있도록 미리 메모리 백업?이라고 보면 좋을 것 같다.

How a Modern Computer Works

폰 노이만 구조

  • device : 여기서는 I/O
  • DMA (Direct Memory Access)
    : I/O가 메모리에 직접적으로 접근한다. 공용버스를 거치지 않는다.

CPU - IO - Memory

현재 무엇을 할 것인가를 CPU가 결정한다,
메모리에서 값 가져오고 다시 메모리에 저장한다(Bus선을 거쳐서)
이런 구조를 가지면 I/O가 놀면서 조금 비효율적으로 되는데 그래서 DMA가 있다.

Multiprogramming

multitasking과 혼용해서 사용.
실제 동시에 프로그램이 실행되는 것은 아니지만 왔다갔다하면서 그렇게 보이도록 한다.

Dual-mode Operation

모드를 2개로 나누어 운영하는 것

  • User mode (일반 프로그램 - CPU에서 실행하는)
  • Kernel mode OS로 혼용해서 사용하기도
    (OS 코드를 실행함, 모든 권한 다 있음, 버그 있다면 시스템 망가질 수 있음)

Q) 뭐야 왜 나눠요?
A) OS는 컴퓨터의 모든 것을 관장한다. 전부 다 건드릴 수 있는 권한이 있음.
그래서 건드릴 수 있는 영역을 제한해서 유저가 잘못 건드려도 컴퓨터의 동작이 멈추지 않게 한다.
OS가 멈추게 한다!

Real-Time Embedded Systems

시간에 민감한 OS 무조건 몇 초 이내에 결과 내야 하는 경우

  • real-time OS
    : 일반 OS는 과부화 시 고루고루 나눠준다. 하지만 리얼타임은 최상위부터 실행한다.
    비싸고 일반적인 시스템이 아니라고 함.
    자동차, 비행기, 공장 이렇게 특정 기능만 하는

Kernel Data Structure

  • Linked List의 데이터 구조로 구성됨

0개의 댓글