운영체제를 한 마디로 정의한다면 "컴퓨팅 시스템을 운영(Operating)하는 Software(Program)"라고 할 수 있다.
1. Computer
1.1 Computer의 정의
운영체제가 운영/관리 하는 컴퓨터의 정의를 자세하게 살펴보면 다음과 같이 정리할 수 있다.
- 컴퓨터는 정보를 처리하는 장치를 의미한다.
- 정보는 bits, bytes, kilo bytes와 같은 단위로 표현할 수 있고, 논리 게이트(NOT, AND, OR)를 이용해 정보를 처리한다.
- 트랜지스터(논리 게이트)를 이용해서 IC, LSI, VLSI, ULSI와 같은 논리 회로를 만들 수 있다.
- 이 때, 논리 회로를 정보 처리 장치라고 표현한다.
- 논리 회로를 통해서 정보를 처리한 후 플리-플롭으로 저장하거나, 데이터 버스를 이용해 값을 전송하는데,
- 이 것들을 통틀어서 컴퓨터로 정의한다.
- 다만, 계산기와 같이 특정 작업에만 사용하는 H/W를 컴퓨터라고 하지 않고,
- Software가 하려는 대부분의 작업을 범용적으로 지원하는 H/W 장치를 컴퓨터라고 한다.
1.2 John von neumann Architecture (Computer Architecture)
Alan Turing이 「Automatic Turing Machine」 논문을 통해서 현대의 컴퓨터 구조를 제시하고,
John von Neumann이 ISA 개념을 이용해서 Alan Turing이 제시한 구조를 실현해서 컴퓨터를 구현시켰다.
- Program을 Memory에 저장해서 사용하는 Stored-Program 컴퓨터(내장형 컴퓨터)를 설계를 말한다.
- Memory에 저장된 Program의 명령어를 CPU가 하나씩 Fetch → Excute 하는 Cycle로 구성된다.
- 이처럼 명령어 집합으로 컴퓨터를 운영하는 것을 ISA(Instruction Set Architecture) 라고 한다.
1.3 Computer Organization
1.3.1 Computer Components
- CPU (1개 이상), Memory
- Disk Controller + Disk
- USB Controller + Mouse, Keyboard, Printer
- Graphics adapter + Monitor
- Connected through a common Bus
1.3.2 Bootstrap
- 컴퓨터 전원을 키면 EEPROM을 통해 Bootstrap Program을 Memory에 로딩
- Bootstrap Program은 Operating System을 Memory에 로딩
1.3.3 Interupt
- I/O Device가 CPU에 신호를 보내 때 사용하는 매커니즘
- H/W & S/W Interupts로 구분
1.3.4 Storage System
- Register > Cache > Main Memory > Solid-State Disk > Hard Disk > Optical Disk > Magnetic Tapes
1.3.5 I/O Structure
- Operating System의 많은 영역이 I/O 관리에 집중되어 있음
- CPU가 Memory에 접근해서 명령어를 Fecth 하고, 자주 사용되는 명령어는 Cache에 저장
- 명령어는 Instruction Register에 저장하고, Decoder를 통해 해석한 내용을 Excute
- 동영상 입/출력과 같이 CPU 개입 없이 Device가 직접 Memory에 접근하는 경우 DMA(Direct Access Memory) 이용
1.4 Modern Computer Concepts
- Symmetric MultiProcessor(SMP): Memory 1개에 CPU Chip을 여러 장 꽂는 슈퍼 컴퓨터의 구조
- MultiCore: 하나의 CPU Chip에 Register, Cache 구조의 Core를 여러 개로 구성하는 구조
- Multiprogramming: Memory에 여러 개의 Program을 올려 Multitasking(Multiprocessing)이 가능하게 하는 방식
- Multitasking: CPU가 작업을 자주 전환하면서 여러 개의 Process(Task, Job, Program...)를 처리하는 방식
- CPU Scheduling: Multitasking에서 다음에 어떤 프로세스로 전환할지 선택하는 기능
- Virtualization: 1개의 H/W에 VMM을 통해 여러 개의 O/S를 운영하는 기술
※ Virtual Machine Manager(VMM) Type: VMWare, Xen, WSL ...
1.5 Computing Environments
- Mobile Computing
- Client-Server Computing
- Peer-to-Peer Computing
- Cloud Computing
- Real-Time Emnedded Systems
2. Program
- Program은 Computer에게 작업을 실행시키는 명령어의 집합이다.
3. Operating System
- Computing System을 운영(Operatinge)하는 항상 실행(running at all times) 중인 Software(Program)다.
- Application Promgram이 H/W 장치(CPU, Memory ...)를 사용할 수 있게 System Service를 제공한다.
- O/S는 Process, Resource(Printer, File ...), User Interface(Mouse, Keyboard ...) 등을 관리한다.
3.1 O/S Interface
Interface를 통해 Operating System을 거쳐 Device를 사용하게 되는데,
Software나 Program들이 사용하는 Interface와 User가 사용하는 Interface가 구분되어 있다.
- System calls: Software, Program 등이 O/S에 접근할 때 사용(Application Programming Call)
- User Interace: Command Line Interface, Graphic User Interface, Touch-Screen Interace
'CS Fundamentals > Operating System' 카테고리의 다른 글
[Operating System] Process (2) | 2024.12.30 |
---|