Posts OS 스터디를 시작하기 전에..
Post
Cancel

OS 스터디를 시작하기 전에..

Preview Image

운영체제가 무엇인지 대략적으로 가지를 뻗어 보자.


Computer?

대략 이야기해서 컴퓨터라는 하드웨어를 운영하는 소프트웨어라고 할 수 있다.
컴퓨터란 정보를 처리하는 기계라고 할 수 있지.


정보

여기서 정보라는 것은 클로드 섀넌(Claude Shannon) 이 정의하기를,
정보량 = 사건이 발생한 확률에 마이너스 로그를 붙인 것이라고.. 이때 이 섀넌의 정보량을 엔트로피라고 하는데, 섀넌이 공식을 만들고보니 열역학적 엔트로피와 같은 형태였다고 하여 그렇게 이름붙였다고 하였지만 결국엔 관계가 있었다더라..!
정보란 곧 불확실성을 수치적으로 표현한것

정보의 최소 단위 : bit (binary digit)
ex) 8bit 정보량 : 2의 8승 : 1 byte


정보의 처리

정보의 처리는 어찌하느냐? 정보의 상태 변환 (0 => 1, 1 => 0)을 통해 수행한다. 여기서 정보의 상태를 변환할 수 있는 논리적인 장치로써 부울 대수를 이용하며,

  • 부울 대수 (Boolean Algebra) : NOT, AND, OR 부울 대수를 조합하여 논리 게이트를 만들어 모든 연산이 가능하다.
  • 논리 게이트 : NOT, AND, OR, XOR, NAND, NOR 논리 게이트를 집적하여 논리 회로를 만든다.
  • 논리 회로 : IC, LSI, VLSI, ULSI, SoC, … 갈수록 집적도가 높아진다.
  1. Integrated Circuit
  2. Large Scale Integerated Circuit
  3. Very Large Scale Integerated Circuit
  4. Ultra Large Scale Integerated Circuit
  5. System on a Chip …

SoC 쯤 되면 완전 구동 가능한 시스템, 제품이 하나의 칩에 다 집적되어 있음.

한창 발전한 시기에는 무어의 법칙이니 황의 법칙이니 하며 발전했지만 어느정도 단계에 올라선 현재는 양자간섭으로 인해 더이상 집적이 어려워 발전이 더뎌졌다… 삼성 등에서는 삼진법으로 돌파구를 찾는 듯.

정보의 저장

  • Flip-Flop : 교차된 게이트로 루프를 형성한다, 클럭이 진행됨에 따라 한 클럭 전 이전의 정보를 기억해 두는 형태라고 일단 이해해둡시다.

정보의 전송

  • 데이터 버스 : 전송 경로로 그냥 선이라 보면 된다. 데이터는 Radio Frequency로도 전송할 수 있고 방법은 많지

정보를 처리하는 방법

  • 덧셈 : 반가산기, 전가산기를 이용
  • 뺼셈 : 2의 보수 표현법
  • 곱셈, 나눗셈 : 덧셈, 뺄셈의 반복
  • 실수연산 : 부동 소수점 표현법
  • 함수 : GOTO로 이동

이러한 처리는 NOT, AND, OR 게이트,, NAND 게이트만으로 모든 계산을 할 수 있다.(범용성 : universality)


다시 Computer

다시 “정보를 처리하는 기계”인 컴퓨터와 계산기를 비교하자면,

  • 계산기의 경우 계산 이외의 다른 목적으로 사용할 수 없다.
  • 범용 컴퓨터: general-purpose computer (소프트웨어가 하고자 하는 바를 하드웨어가 모두 지원)

이런 컴퓨터의 구조를 알아보려면 아래 서술한 양반들로부터 출발할 수 있겠다.

앨런 튜링 (Alan Turing)

컴퓨터의 원형인 Turing Machine 개발했다.
계산 가능성 : computability

  • Turing-computable: 튜링 머신으로 계산 가능한 것.
  • 정지 문제 : Halting Problem; 튜링 머신으로 풀 수 없는 문제

구조는 대략
Head, Tape, Turing Machines, Universal Turing Machine 을
CPU, RAM, Application Programs, Operation System
순으로 매칭할 수 있다. 테이프(오토마타)에 기록된 정보를 헤드가 읽어 처리하는것

존 폰 논이만 (John von Neumann)

실제로 동작하는 컴퓨터를 개발했다.

  • Stored-Program 방식 : 메모리에 프로그램을 저장하는 방식
  • 명령어를 가져와서 (fetch) 실행 (execute) Cycle
  • 이 명령어 집합 구조를 ISA (Instruction Set Architecture) CPU가 RAM(소프트웨어를 탑재)을 bus를 통해 읽어서 사용하는 것이 곧 이 방식이다.
    여기서 프로그램이란 곧 명령어들의 집합을 의미한다.


드디어 운영체제 (Operating System)

운영체제는 컴퓨터에서 항상 실행중인 프로그램 (=Universal Turing Machine)

  • 시스템 서비스를 Application program에 제공 : 하드웨어를 OS가 감싸서 앱들과 소통하는 Interface
  • 프로세스 관리, 리소스(파일,입출력 등) 관리, 유저 인터페이스 관리 등등..을 수행

소형 임베디드 시스템 (아두이노, 라즈베리파이)의 경우 프로그램으로 직접 하드웨어 관리하나, 하드웨어가 복잡해질수록 운영체제가 개입하여 관리하게 된다.

자, 전개는 이정도로 하고 공룡책을 본격적으로 펴봅시다.

This post is licensed under CC BY 4.0 by the author.

WSL (Windows Subsystem for Linux) 맛보기 (feat. VS Code)

OS 서론 (Introduction)