2024. 4. 26. 16:40ㆍCS 지식/운영체제
1.1 Definition of OS (위키)
2012 기준 나무위키 정의
- 하드웨어와 유저 사이의 Interface이다.
- Management, coordination of activities, sharing of the resource와 관련된 일을 한다.
- 머신에서 운영되는 어플리케이션에 대한 Host로서의 역할을 한다.
- 어플리케이션이 하드웨어의 운영에 대한 자세한걸 모르더라도 운영체제는 어플리케이션이 다룰 수 있도록 해준다.
- 현재 우리가 사용하고 있는 대부분의 장비들은 컴퓨터 시스템이다.
현재 나무위키 정의
- 컴퓨터 하드웨어, 소프트웨어의 자원을 관리하는 시스템 소프트웨어이다.
- 컴퓨터 프로그램들에게 common service를 제공한다.
- 프로그램과 컴퓨터 하드웨어 사이에 있는 중간계층이다.
- 어플리케이션 코드들은 하드웨어에 의해서 일반적으로 바로 실행된다 ( 운영체제에 간섭받지 않는다)
- 필요에 따라서 운영체제가 가지는 서비스를 하기 위해서 System call을 한다.
- 하드웨어에 의해서 interrupt를 받게 된다.
1.2 Function of OS (Simple)
운영체제 기능은 User interface, Resource management, Process management, Networking/ Security + Protection 가 있다. 이중 이 책에서는 Resource mangagement, Process management 를 많이 다루고 있다.
User Interface
- CLI ( Command Line Interface ) : 명령어로 사용되는 인터페이스
- GUI ( Graphical User Interface ) : 그래픽으로 추상화되어 있는 그래프로 사용할 수 있도록 해주는 것
- EUCI ( End-User Comfortable Interface ) : 사용자가 더 편하게 접근할 수 있도록 해주는 것
Resource mangement
- Processor mangement
- Memory management
- File management
- I/O management
Process management
- Process management
- Thread management
Networking / Security + Protection
- 독립 교과목으로 네트워크 시간에 배우게 된다.
1.3 Computer System Organization
여기서 판 부분이 우리가 배우는 운영체제의 부분이다. 위에서 설명한 것 처럼 시스템 소프트웨어와 컴퓨터 하드웨어 사이에서 동작하고, Resource Mangement를 하는 것을 볼 수 있다.
1.4 OS Classification
OS 분류 기준
- 동시에 사용할 수 있는 유저의 수
- Single-user System
- Multi-user System
- 동시에 사용할 수 있는 프로세스의 수
- Single-tasking system
- Multi-tasking system (Multiprograming system)
Single-user system vs. Multi-user System
- Single-user system
- 한유저만 동시에 시스템을 접근할 수 있다.
- 컴퓨터에 있는 모든 리소스는 한 유저를 위해 서비스 된다
- Personal Computer로 많이 사용된다
- 비교적 Protection mechanism 이 필요하지 않다
- Multi-user System
- 동시에 여러명의 유저가 시스템을 사용한다
- Protection mechanism이 중요하다
- 멀티테스킹도 반드시 지원해야한다.
Single-user system vs. Multi-user System
- Single-tasking system
- 무조건 Single-user system이다.
- Multi-tasking system
- concurrency control, synchronization 이 필요하다
1.5 OS Sturcture
OS는 kernel 영역과 Utilties영역으로 나뉜다.
Kernel
- 부팅한 이후에 메모리에 상주하고 있는 영역
- OS에 가장 중요한 부분이다
- OS에서 자주사용되는 기능을 지원한다
- 가장 자주 사용되는 영역은 resource management이다.
Utilities
- 부팅할 때 메모리에 올라가지 않음
- 서비스의 프로그램이다
- 서비스 기능을 주로 지원한다. (UI function)
- 서비스가 필요하다면 해당 영역만 메모리로 올린다.
Booting
Bootstrap program을 사용해서 Booting이 된다.
- OS의 kernel을 찾아서 메모리 영역으로 이동시킨다
- 모든 시스템(CPU register, Device Controller, Memory contents)을 초기화한다.
- 펌웨어 형태로 ROM에 저장되어있다.
1.6 Dual Mode Operation
컴퓨터 CPU에서는 두가지 다른 모드인 User mode와 Kernel mode로 사용된다. User mode에서 Kernel mode는 trap이나 interrupt가 일어나면 모드가 바뀌게 된다.
Interrupt : I/O device와 같은 하드웨어나 소프트웨어에서 singal이 옴 ( 외부 장치에서 예상하지 못한 event가 들어옴)
Trap : 소프트웨어에서 발생한 Interrupt
Exception : 프로그램에서 오류가 발생함 ( 나누기 0 )
System call : 특별한 요청이 유저 프로그램에서 원할 때 사용
User mode : 어플리케이션의 코드가 실행되고 있다.
kernel mode : 커널코드가 실행 되고 있다.
Privileged instructions : 기계어 명령 집합들 중 커널모드에서만 사용되는 기계어 명령어들
1.7 System Call Interface
System call
- 어플리케이션과 운영체제사이의 interface이다.
- 운영체제가 어플리케이션에 제공하는 서비스