728x90
앞으로 배울것들
- what operating System Do
- Computer-System Organization
- Computer-System Architecture
- Operating-System Structure
- Operating-System Operations
- Process Management
- Memory Management
- Storage Management
- Protection and Security
- Kernel Data Structure
- Computing Environments
- Open-Source Operating System
학습의 목표
- 컴퓨터 기본구조 파악한다.
- OS에서 중요한 구성요소에 대해 알아본다.
- 컴퓨팅 환경에 대한 전반적인 시각을 가진다.
- open source os 경험한다.
Operating System 이란?
A program that acts as as intermediary between a user of a computer and the computer hardware
user의 컴퓨터와 hardware 컴퓨터 사이의 중간 매개체가 되주는 프로그램이다.
OS 의 목표
- Execute user programs and make solving user problems easier
사용자 프로그램을 실행하고 사용자의 문제를 쉽게 해결하기 위해 - Make the computer system convenient to use
컴퓨터 시스템의 사용을 편하게 하기위해 - Use the computer hardware in an efficient manner
컴퓨터 하드웨어를 효율적으로 사용하기 위해
컴퓨터 시스템의 4가지 부분
- Hardware : 기본 컴퓨팅 리소스 제공
CPU, memory, I/O 장치 - Operating system : 다양한 application과 user의 하드웨어 사용을 제어하고 관리해준다
- Application program : 시스템 리소스가 사용자의 컴퓨팅 문제를 해결하는 방법이 정의된것
- Users : people, machine, other computers
다양한 관점에서 봤을 때 OS가 하는일
- 사용자 입장 : 편리하고 사용이 쉽고 성능이 좋아야 한다. resource utilization에 대해 신경쓰지 않아도 된다.
- 공유된 컴퓨터 입장(shared computer) : 고성능 메인프레임 컴퓨터나 미니 컴퓨터들은 사용자들이 원하는 역할을 해주어야 한다.
- 고성능 서버급 컴퓨터 : 특정 과학 기술 작업에 대해 자원을 효율적이고 빠르게 작업할 수 있게 해야한다.
- 휴대용 컴퓨터 : 리소스가 안좋기 때문에 사용성을 최적화 하고 배터리를 관리한다.
Operating System Definition
- Resource allocator : 리소스 관리 프로그램
- 모든 리소스를 관리한다.
- 효율적이고 공정한 리소스 사용을 위해 충돌되는 요청에 대해 판단한다. - Control program : 제어 프로그램
- 부적합한 컴퓨터의 사용과 에러를 예방하기 위해 프로그램의 실행제어를 담당한다. - 사실 정형화된 정의는 없다,
- OS를 주문했을때 오는 모든것을 OS라고 한다.
- Kernal + System program (나머지는 application program)
*Kernal : The one program running at all times on the computer -->OS의 여러가지 핵심이 되는 기능(CPU 스케쥴링 등)
BootStrap program
- 컴퓨터를 켜거나 리부팅할때 Load 되는 프로그램
- ROM 이나 EPROM에 펌웨어(firmware) 형태로 구현됨
- 시스템을 초기화 해주는 기능
- OS kernal를 로딩하고 실행을 시작시키는기능을 한다.
*BIOS : 메인 보드에 칩 형태로 구현, 전원이 켜졌을 때 ROM BIOS에 firmware 형태로 구현되있는 코드가 실행됨(BootStrap 과정)
컴퓨터 구조 간략 설명
- 하나 이상의 CPU와 device Controlers 가 공유 메모리에 접근하게 해주는 common bus를 통해 연결된다.
- CPU와 device의 Concurrent한 실행은 memory cylce에 대해 경쟁한다.
- CPU 장치는 입출력 장치와 독립적으로 병행해서 실행이 가능하다. (인터럽트를 통한 제어권 획득)
- I/O모듈은 local buffer 를 가진다.
- buffer를 통해서 data 통신이 이루어 진다.
- Interrupt signal 로 CPU 에게 동작이 끝났음을 알린다.
인터럽트의 공통기능
- Interrupt vector를 통해 일어남
*service routines의 모든 주소를 가진 vector - 인터럽트 아키텍쳐는 instruction의 address를 저장하고 있어야 한다.
- trap,exception : error나 유저 요청에 의한 software-generated intrurrpt
- OS는 interrupt driven 시스템이다.
인터럽트 핸들링
- OS는 registers와 program counter를 저장함으로써 CPU의 상태를 보존한다.
- 어떤 타입의 인터럽트인지 판단한다.
- 프린트, 하드디스크, 시스템 등 어느 인터럽트인지 체크한다.
- polling
- vectored interrupt system : 자신만의 특정 주소값을 보내는 방식 - seperate segments of code determine what action should taken for each type of interrupt
Storage Notation. KB = 1024 = 2^10 MB = 10242 = 2^20 GB = 10243 = (2^30) TB = 10244 = (2^40) PB = 10245 = (2^50) |
Storage Structure
- Main memory : CPU 가 직접적으로 access 할 수 있는 유일한 대용량 저장장치
- DRAM
- Random Access
- Typicaly Volatile - Secondary Storage : 비 휘발성 대용량의 저장장치, 메인 메모리의 연장선
- Hard disk
- Solid State Disk
Storage Hierachy
- Speed
- Cost
- Volatility
*Caching : copying information into faster storage system.
*Device Driver(for each device controller) : provide uniform interface between controller and kernal
Caching
- 컴퓨터의 다양한 레벨에서 사용되는 원리
- 느린 저장소에서 빠른 저장소로 임시로 데이터를 복사해놓는 것
- 먼저 해당 정보가 캐시에 있는지 확인한다.
- 있으면 캐시에서 바로 참조한다.
- 없다면 캐시로 복사해서 사용한다.
- Cache 는 cached 되는 저장소 보다 작다.
DMA : Direct Memory Access Structure
- 빠른 속도의 입출력 장치에 대해 메모리 속도와 비슷하게 데이터를 전송할 수 있게 한다.
- CPU 간섭없이 직접 I/O가 메모리에 access 한다.
컴퓨터 시스템 구조
- 컴퓨터 시스템은 대부분 single general-purpose processor를 사용한다.
- multiprocessors 시스템의 중요도가 증가하고 있다.
- parallel systems, tightly-coupled systems
- 전제적인 성능 증가(주어진 시간 내에 얼마나 많은 일을 처리하는가)
- 규모의 경제
- 신뢰성이 높아짐 - graceful degradation or fault tolerance
- Two types
- Asymmetric Multiprocessing - 각각 프로세서는 특정 작업에 할당된다.
- Symmetric Multiprocessing - 각각 프로세서는 모든 일을 한다.
Symmetric Multiprocessing vs Asymmetric Multiprocessing
- 대칭형 다중 처리는 두 개 또는 그 이상의 프로세서가 한 개의 공유된 메모리를 사용하는 다중 프로세서 컴퓨터 아키텍처이다.
- 비대칭 멀티 프로세싱 시스템은 복수의 상호 연결된 중앙 처리 장치가 모두 동일하게 취급되지 않는 멀티 프로세서 컴퓨터 시스템이다.
- Master Slave 방식
- Master는 Slave에 작업을 할당하고 자료구조를 제어한다. 스케쥴링과 입출력 프로세싱, 시스템 활동을 관장한다.
Clustered Systems
- 멀티 프로세서 시스템과 비슷하지만 다수의 시스템들이 함께 작업한다.
- storage-area network(SAN-LAN정도의 빠른 Network) 를통해 메모리를 공유한다.
Operating System Structure
- Multiprogramming(Batch system) - need for efficiency
- CPU 가 항상 하나 이상의 실행을 하기 위해 jobs(code and data) 들을 Multiprogramming이 organizes한다.
- total jobs의 subset들은 메모리에 항상 저장된다.
- job Scheduling에 의해 작업이 선택된다.
- I/O와 같은 것 때문에 CPU가 기다려야 할 때 운영체제는 다른 작업으로 바꾼다.
- Timesharing(multitasking) - logical extension in which CPU switches jobs so frequently that user can interact with each job while it is running creating interactive computing
- 응답시간은 1초 이내여야 한다.
- 각각 유저들은 메모리에 적어도 하나의 프로그램을 실행한다. -> process
- 여러 작업들이 동시에 실행될 준비가 된다 -> CPU scheduling
- 프로세스들이 메모리에 안맞다면 swap 하여 바꾼 뒤 실행한다.
- Virtual memory 는 메모리외에서 프로세스를 실행하게 해준다.
Operating System operations
- Hardware interrupt by one of the devices
- Software interrupt(exception, trap)
- Software error ( division by zero)
- Request for operating system service
- Process problems such as infinite loop
- Proceses modify each other or the operating system - Dual mode : OS to protect itself and other system components
- User mode : 어플리케이션 실행
- kernel mode : 중요한 부분을 항상 OS의 기본적인 부분을 수행하는 모드
-mode bit provided by hardware : distinguish when system is running user code or kernel code
--> application 이 시스템 하드웨어를 직접 접근하면 보안, 안정성에 문제가 있을 수 있기 때문에 분리한다. - Increasingly CPUs support multi-mode operations
- virtual machine manager(VMM) mode for guest VMs
Process Management
- Process : 실행되고 있는 프로그램. Program 은 passive entity(코드 그자체)지만 process는 active entity
- Process 는 CPU, memory, I/O, files, initialization data 등등의 리소스가 필요함
- Process 종료는 사용하던 리소스의 reclaim 이 필요함
- Single-threaded process : 하나의 program counter가 있음(순차적으로 하나씩 실행됨)
- Multi-threaded process : one program counter per thread
- 같은 프로세스의 스레드는 같은 가상 주소와 공간과 file descriptor를 공유함
- 각각의 쓰레드는 stack, stack pointer, program counter, CPU registers를 소유함
- 쓰레드는 OS가 processor를 schedule 하는데 쓰는 unit - OS는 user process와 system process에 대해
- creating and deleting
- suspending and resuming
- providing synchronization
- providing communication
- handling deadlock
Memory Management
- 프로그램을 실행하면 모든 명령어와 데이터가 메모리 상에 있어야 한다.
- 메모리 관리는 어떤게 있느냐와 언제 쓰이느냐에 따라 결정된다.
- OS는 Memory 에 대해
- Optimizing CPU utilization and computer response
- Keep track of memory are currently using by whom
- decide which processes and data to move into and out memory
- allocating, deallocating memory space as needed
Storage Management
- OS는 스토리지에 대한 uniform하고 logical 한 관점을 가진다.
- File System management
- creating and deleting files and directory
- access control on most systems to determine who can access what
- primitives to manipulate files and directories
- mapping files onto secondary storage
- backup files onto stable storage media
Migration of data from Disk to Register
- 멀티 프로세서 환경에서는 caches coherency가 중요하다.
*cache coherecy : all CPU have the most recent value in their cache - 일관성 문제가 생기는 이유
- Cache 가 A에 있다
- CPU1 이 A를 B 로 바꿨다.
- data A는 B로 바꿔져야 되지만 cache 에는 A가 적제되어 있을 수 있다.
- CPU2 입장에서는 바뀐 B를 써야 하는데 예전 A를 사용할 수 있다.
Protection and Security
- OS에서 제일 중요한 부분이다.(데이터를 안전하게 만들고 시스템 취약성을 낮춘다.)
- Protection : OS자원에 허용된 접근만 Access (dual mode)
- Security : 시스템을 내부와 외부로 부터 안전하게 만든다.
- 시스템은 누가 어떤 권한을 가지는지 먼저 구분한다.
Kernal Data structures
- 여러가지 자료구조를 활용함으로써 효율적인 동작을 할 수 있게 만든다.
- Singly linked list
- Doubly linked list
- Circular linked list
- BST
- Hash map
728x90
'Computer Science > Operating System' 카테고리의 다른 글
🌌운영체제 구조 (0) | 2020.06.17 |
---|---|
🚗Process (0) | 2020.06.16 |
🥓Thread (0) | 2020.06.16 |
🚀CPU 스케줄링 알고리즘 (0) | 2020.06.16 |
댓글