-
Chapter 1: Introductionos 2020. 9. 18. 21:06
Operarting System은 무엇인가?
사용자와 하드웨어 사이를 이어주는 중개인 역할을 한다.
Operarting System의 목표
- 사용자의 program 실행과 사용자 문제를 더 쉽게 풀기위해
- 컴퓨터 시스템을 더 쉽게 사용하기 위해
- 효율적으로 컴퓨터 하드웨어를 사용한다.
Computer Systen Structure
Operating Systen Definition(정의)
OS는 resource allocator이다
- 모든 resourse(자원)을 관리한다
- 효율적이고, 공정한 resourse 사용을 위해 상충되는 요청 사이에서 결정한다
OS는 control program이다.
- 오류 및 부적절한 컴퓨터 사용을 방지하기 위해 실행을 control한다.
OS의 정의
- 하나의 정의로 설명되지 않는다
- 컴퓨터에서 항상 실행되는 프로그램은 kernel이다.
Computer Startup(컴퓨터를 시작할때)
bootstrap program은 재부팅 또는 전원 킬때, load되어진다.
- Rom 또는 EPROM에 저정되며, 보통 firmware(펌웨어)로 알려져 있다.
- 시스템의 모든 것을 초기화 한다.
- 운영체제 커널 로드 및 실행을 시작한다.
Computer System Organization
- 여러개의 CPU와 장치 컨트롤러(Device controllers)로 구성되어 있다. 그리고 이들은 공용버스(common bus)로 이여서, 메모리를 공유한다.
- 메모리의 주기를 두고 CPU와 디바이스를 동시에 실행한다.
- 입출력 장치와 CPU는 동시에 실행될 수 있다.
- Device controller가 CPU에 interrupt를 발생시켜 작업을 완료했음을 알린다.
Common Functions of Interrupts
- interrupt는 모든 service routine의 모든 주소를 포함한 interrupt vector(공간)를 통해서 interrupt service routine으로 제어 권한을 이전한다.
- interrupt architecture는 인터럽트된 명령의 주소를 반드시 저장해야 한다.
- trap과 exception은 에러 혹은 유저 요청에 의한 소프트웨어 생성 interrupt이다.
- Operating System은 interrupts driven이다.
Interrupt Handling
- OS는 storing registers와 program counter 저장하여 CPU의 상태를 유지한다.
- 발생한 interrupt의 유형은 2가지 이다
- polling : 주기적으로 이벤트를 감시 처리 루틴을 실행한다.
- vectored interrupt system
I/O Structure
- I/O 시작한 후, I/O의 완료를 기다리지 않고, control이 user program으로 돌아간다.
- System call: 사용자가 I/O 완료를 기다릴 수 있게 OS에게 요청하는 것
- Device-status table: 각 I/O 장치의 유형, 주소 및 상태를 나타내는 항목이 포함되있다.
- I/O 장치 테이블로 OS indexes를 전송하여 장치의 상태를 확인하고 interrupt를 포함하도록 테이블 항목을 수정한다.
- I/O 시작한 후, I/O의 완료를 기다리고, control이 user program으로 돌아간다.
- 다음 intrrupt까지 CPU는 명령 대기 유효 상태가 된다
- Wait loop
Storage Structure
- Main Memory: CPU가 직접 접근할 수 있는 유일한 대용량 저장 장치이다.
- Random access: 메모리의 주소만으로 즉시 기억 데이터를 읽어낼 수 있는 호출 방식
- 휘발성(전원이 내려가면 메모리의 데이터가 사라진다.)
저장 장치에서 중요한 3가지
- Speed
- Cost
- Volatility(변동성)
Cashing: 정보를 더 빠르게 저장 시스템으로 복사, 주 메모리를 보조 저장장치를 위한 캐시로 볼 수 있다.
- Device Driver: I/O를 관리할 각 장치 컨트롤러, 컨트롤러와 커널 사이를 균일한 인터페이스를 제공한다.
Storage-Device Hierarchy
Cashing- 컴퓨터의 여러 레벨에서 수행도는 중요한 원리
- 사용 중인 정보가 저속 저장 장치-> 고속 저장 장치로 일시적으로 복사된다.
Computer-System Architecture
- 대부분은 시스템에는 특수한 목적을 가진 프로세스를 가진다.
- 사용 및 중요성이 향상하는 Multiprocessors system
- parallel system, tightly-coupled system이라고 불리기도 한다.
- 이점으로
- 처리량이 높아진다.
- 속도가 높아진다
- 신뢰성이 높다.
- 2가지 타입
- Asymmetric Mutipprocessing: 각 프로세스가 모든 작업을 한다(하나의 작업을 분산 시켜서 하는것)
- symmetric Mutipprocessing: 하나의 프로세스가 다른 프로세스와 주/종관계로써 종 프로세스가 주 프로세스의 명령을 처리한다.
Clustered Systems
- Multprocessor system 같지만, 여러 시스템과 함께 일하는 것이다.
- 보통 공유하는 저장 공간이 SAN(storage-area network)을 경유한다.
- 실패를 극복하기 위해 high-availability service를 제공한다.
- Asymmetric clustering은 하나의 장비를 상시 대기 모드(Hot-standby mode)로 작동
- symmetric clustering은 두개 이상의 노드가 작업을 수행하는 동시에 다른 노드들을 모니터링하는 구조다.
- 몇몇 clusters는 high-performance computing (HPC)을 위한 것이다.
- 일부에서는 DLM(Distributed Lock Manager)을 사용하여 충돌하는 작업을 방지함
Operating System Structure
- Multiprogramming(batch system)은 효율을 필요로 한다
- user 한명이 CPU 및 I/O 장치를 항상 사용가능 상태로 유지 할 수 없다.
- Multiprogramming은 작업(code 및 data)을 구성하여 CPU가 항상 실행되도록 한다.
- 시스템의 전체 작업의 하위 집합은 메모리에 있다.
- 한가지 작업을 job scheduling을 통하여 실행 또는 선택한다.
- Timesharing(multitasking)
- 프로세스마다 작업시간을 정해두고 번갈아가면서 작업하는 방식이다. 프로세스들이 빠르게 번갈아가며 메모리를 사용하면 사용자 입장에서는 마치 동시에 작동하는 것처럼 보이게 하는 것이다.
- 반응시간이 1초 미만이다.
- process: 사용자에게 메모리에서 실행 중인 프로그램이 하나 이상 있는 것
- CPU scheduling: 여러 작업을 동사에 실행할 준비가 될 경우
- 만약 프로세스가 메모리에 맞지 않으면, swapping이 프로세스를 안에서 밖으로 이동시켜 실행 시킨다.
- Virtual memory를 통해서 메모리에 완전히 포함되지 않는 프로세스를 실행 시킬 수 있다.
Operating-System Operations
- interrupt driven(하드웨어와 소프트웨어)
- 장치 하나에 의한 Hardware interrupt
- Software interrupt(exception or trap)
- 소프트웨어 에러(예로, 0나누기)
- 운영체제 재요청
- 다른 프로세스 문제, 무한 루프, 프로세스 or OS를 수정하는 프로세스
Transition from User to Kernel Mode
이러한 이중 모드(Dual-mode) 방식을 사용하면 나쁜 의도를 가진 사용자로부터 운영체제, 하드웨어를 비롯한 시스템과 사용자를 보호할 수 있다.
Process Management
- program은 수동적인 독립체이다. <-> process는 능동적인 독립체이다.
- process는 일을 수행하는 데 리소스(자원)가 필요하다
- CPU,Memory, I/O, file
- Initalization data
- 프로세스 종료하려면 재사용 가능한 리소스를 회수해야 한다.
- 싱글-스레드 process는 프로그램이 어디까지 실행되었는지 북마크하는 program counter를 가지고 있다.
- 프로세스는 작업 완료까지, 순차적으로 명령을 수행한다.
- 멀티스레드 프로세스는 스레드 하나 당 1개의 program counter를 가진다.
- 보통 시스템에는 많은 process, user, os가 CPU 1개 혹은 2개 이상에서 동시에 실행된다.
- 프로세스/스레드 간에 CPU를 멀티플레싱하여 동시에 제공한다.
Protection and Security
- Protection
- '보호'의 의미이다.
- 출입 조차 할 수 없다는 의미
- security
- '보안'의 의미이다.
- 출입은 가능하다 그러나 공격 혹은 외적인 친입을 막는다.
Computing Environments – Client-Server
- 클라이언트에게 서비스를 요청할 수 있는 인터페이스를 제공하는 컴퓨팅 서버 시스템(예: 데이터베이스)
- 클라이언트가 파일을 저장하고 검색할 수 있는 인터페이스를 제공하는 파일 서버 시스템
Computing Environments - Peer-to-Peer
- 클라이언트와 서버를 구분하지 않음
- P2P는 클라이언트와 서버를 구분하지 않음
- 노드가 P2P 네트워크에 가입해야 함
Computing Environments - Virtualization
- Emulation: 소스 CPU type(or OS)이(가) 다를 때 사용하는 것이다.
- Virtualization: CPU를 위해 기본OS를 컴파일하고, 게스트 OS를 실행되며 또한 기본적으로 컴파일을 한다.
Computing Environments – Cloud Computing
- Public cloud(많이 사용) – 사용자가 많은 cloud
- Private cloud(개인적인) – 한 명의 사용자가 이용한다.
- Hybrid cloud(pb,pv 섞었다): public과 private가 섞여있다.
- Software as a Service (SaaS): 인터넷을 통하여 이용 가능한 1 or 그 이상의 응용 프로그램
- Platform as a Service (PaaS): 인터넷을 통해 응용 프로그램을 사용할 수 있는 소프트웨어 스택
- Infrastructure as a Service (IaaS): 인터넷을 통해 사용가능한 서버 or 저장공간
Computing Environments – Real-Time(실시간) Embedded Systems
- Embedded system: 특수한 목적을 위해 필요한 것만 넣은 시스템이다
Open-Source Operating Systems
- open-source
- Linux, UNIX
- closed source
- window 10
- copy left: open-source의 기반이 되는 저작권 표시이다.
'os' 카테고리의 다른 글
Chapter 8: Deadlocks (0) 2020.10.26 Chapter 6: Synchronization Tools (0) 2020.10.16 Chapter 2: Operating-System Structures (0) 2020.10.11 Chapter 5: CPU Scheduling (0) 2020.09.28 Chapter 3: Processes (0) 2020.09.16