0. 운영체제란?
컴퓨터 시스템을 운영하는 소프트웨어
컴퓨터 : 정보를 처리하는 기계
정보량 : 어떤 사건 X의 정보량은 이사건이 발생한 확률의 마이너스 2로그이다.(클로드 섀넌)
정보 : 불확실성을 측정해서 수치적으로 표현한것
컴퓨터가 정보를 처리하는 방법
정보의 최소 단위 : bit (binary digit)
정보의 처리 : 정보의 상태 변환
부울 대수 : NOT, AND, OR
논리게이트 : NOT, AND OR, XOR, NAND, NOR
논리 회로 : IC, LSI, VLSI, ULSI, SoC,...
- 무어의 법칙, 황의 법칙
정보의 저장과 전송 : 플립-플롭, 데이터 버스, 라디오 전파
덧셈 : 반가산기 , 전가산기
뺄셈 : 2의 보수 표현법
곱셈과 나눗셈 : 덧셈과 뺄셈의 반복
실수 연산 : 부동 소수점 표현법
함수 : GOTO
삼각함수, 미분, 적분, 사진 촬영, 동영상 재생,....
컴퓨터가 만능인가?
- 범용성
- NOT, AND, OR 게이트 만으로 모든 계산을 할 수 있다
- NAND 게이트 만으로 모든 계산을 할 수 있다
- 범용 컴퓨터 : general-purpose computer / 소프트웨어가 하고자 하는 모든것을 지원해주는 하드웨어
- 계산 가능성:
- Turing-computable : 튜링 머신으로 계산 가능한 것
- 정지 문제 : 튜링 머신으로 풀 수 없는 문제
컴퓨터의 할아버지 : 앨런 튜링
CPU, RAM, Application Program, Operating System라는 현대적 컴퓨터의 원형을 설계
컴퓨터의 아버지 : 폰노이만
폰노이만 아키텍처
내장형 프로그램 컴퓨터를 설계 : 메모리에 프로그램이 저장된 컴퓨터
Fetch - Excecute 사이클
프로그램이란?
- 컴퓨터의 하드웨어에게 작업을 수행하라고 말하는 명령어들의 집합
운영체제란?
- 컴퓨터에서 항상 실행되는 프로그램
- 어플리케이션 프로그램들에게 시스템 서비스들을 제공하기 위해
- 프로세스들, 리소스들, 유저 인터페이즈들, 등등 을 관리하기 위해
1. 운영 체제의 개념과 구조
OS는 컴퓨터의 하드웨어를 조종하는 소프트웨어
- Application Program들을 위한 기반을 제공
- 컴퓨터 유저와 하드웨어 간의 매개
컴퓨터 시스템의 4가지 구성요소
1. Computer Hardware
2. Operating System
3. Application Programs
4. User
OS의 범용적 정의는 없다.
컴퓨터에서 항상 작동하는 한 프로그램 (Kernel)
두가지 다른 타입의 프로그램들:
1. System programs
2. Application programs
현대식 컴퓨터는 하나혹은 그 이상의 CPU들과 Common Bus로 연결된 여러 디바이스 컨트롤러로 구성된다
Bootstrap : 컴퓨터의 전원을 켜먼 가장 먼저 실행되는 프로그램, OS시스템을 메모리에 로드한다.
Interrupts : 하드웨어는 시스템 Bus를 통해 CPU에 신호를 보냄으로써 인터럽트를 언제든 발생시킨다.
Storage : 비 휘발성 저장장치
I/O : OS코드의 많은 부분은 I/O를 다루는데 할당되어 있다.
DMA : Direct Access Memory
컴퓨터 시스템의 구성요소들의 정의:
1. CPU : 지시를 수행하는 하드웨어
2. Processor : 하나 혹은 그 이상의 CPU를 가지고 있는 물리적 칩
3. Core : CPU의 후방계산 유닛
4. Multicore : 같은 CPU에 있는 여러 컴퓨팅 코어들을 포함한다.
5. Multiprocessor : 여러 프로세서들을 포함한다.
멀티 프로그래밍 : 하나이상의 프로그램을 한번에 실행한다
메모리 내에 몇몇 프로세스들을 동시에 유지한다.
CPU 효율을 높일 수 있다.
Multitasking (= multiprocessing) : Concurrency vs Parralalism
multiprogramming의 논리적인 확장
- 어떤 CPU가 작업을 너무 빠르게 전환해서
- 유저들은 각각의 작업들과 그것이 실행되는 동안 상호작용한다고 느끼는 것
CPU scheduling :
만약 몇몇 프로세스들이 동시에 실행될 준비가 되었을경우
시스템은 어떤 프로세스가 다음에 실행될지 정해야 한다.
cpu 효율을 제일 높이는 프로세스을 선택
Operation mode:
1. User mode : 커널 모드에게 시스템 콜을 통해 요청
2. Kernel mode : 유저 모드에게 요청받으면 하드웨어를 직접적으로 제어하고 유저모드로 반환해준다.
- 부정확한 프로그램이 다른 프로그램들이 부정확하게 동작하는데 영향을 주지 않도록 막아준다.
Virtualization : 하나의 컴퓨터의 하드웨어를 추상화해 각기 다른 실행 환경으로 나누는게 가능하도록 하는 기술
VMM : Virtual Machine Manager (VMware, XEN, WSL, ...)
컴퓨팅 환경 :
- 전통적 컴퓨팅
- 모바일 컴퓨팅
- 클라이언트 - 서버 컴퓨팅
- Peer-to-Peer 컴퓨팅
- 클라우드 컴퓨팅
- 실시간 임베디드 시스템
2. OS 서비스들
OS는 프로그램들의 실행하기 위한 환경을 제공한다.
1. User Interface
2. Program execution
3. I/O operation
4. File-System manipulation
5. Communication
6. Error detection
7. Resource allocation
8. Logging
9. Protection and Security
OS와 소통하기위해 유저에게 제공되는 3가지 기본적인 방식들
CLI : Command Line Interface, command interpreter (shell | sh,bash,csh,tcsh,zsh,...)
GUI : Graphical User Interface (Windows, Aqua, KDE/GNOME)
Touch-Screen Interface : Android UI, iPhone UI, ...
System Calls : 컴퓨터 응용과 os간에 소통 방식 / API : Application Programming Interface
'Study > 운영체제' 카테고리의 다른 글
운영체제 3. 프로세스 (0) | 2023.11.27 |
---|