OS(Operating System)
-
컴퓨터 시스템을 구성하고 있는 여러가지 자원(resource)에게 어떤 동작을 하도록 지시하는 역할을 하는 프로그램들의 집합이다.
-
사용자 측면에서 컴퓨터의 하드웨어에 대한 지식 없이도 시스템을 쉽게 사용 가능하게 해주고 시스템 측면에서 컴퓨터 시스템의 성능을 최대 한도로 향상시키는 프로그램이다.
* 컴퓨터의 하드웨어 관리
* 응용프로그래밍(application, App)의 토대를 제공해주는 프로그램
* 사용자, 응용프로그램들과 하드웨어 사이의 중간 매개체 역할
OS의 목적
- 운영체제는 User Interface를 제공하여 사용자가 컴퓨터의 H/W 지식 없이도 편리하게 시스템을 사용하게 한다.
- 컴퓨터 시스템의 자원들을 효율적인 운영한다.(자원 스케쥴링 등등)
OS가 제공하는 Services
- 프로그램 실행: 사용자가 원하는 프로그램을 실행시킨다.
- 입력/출력 동작 지원: 사용자 프로그램이 데이터의 I/O를 수행할 수 있게 지원한다.
- 파일 시스템 조작: 파일의 생성, 삭제 등의 파일 관리에 대한 기능을 제공한다.
- 자원 관리 및 할당: 여러 사용자 혹은 프로세스가 제한된 자원을 사용하려고 할 때 효율적으로 해당 지원 할당을 수행한다.
- 계정 관리: 사용자들의 컴퓨터에 관한 기록을 저장하고 이를 처리하여 자원의 활용 상태 파악 등에 이용한다.
- 오류 탐지: 항상 가능한 모든 오류의 상태를 탐지한다.
- 보호: 사용자 정보를 보호할 수 있는 체제를 제공한다.
OS의 종류
여러 OS들
- windows
- Linux
- Unix
- Mac OS
운영기법에 의한 종류
- 일괄 처리 (Batch processing) 시스템
- 한번에 하나의 프로그램만이 수행된다.
- 운영체제는 항상 메모리의 상주한다.
- 처리 속도를 향상시키기 위해 유사한 요구를 필요로하는 작업을 일괄처리하였다.
- 시대적으로 가장 먼저 생겨난 형태이다.
- 기계적 입출력 장치가 전자적 장치의 속도보다 상대적으로 느려 CPU가 쉬는 경우가 많다는 단점이 있었다.
- 다중 프로그래밍(Multi-programming) 시스템
- 여러 개의 프로그램을 동시에 메모리에 적재하여 하나의 프로그램을 수행하다가 I/O, 인터럽트 등에 의해 대기상태가 되면 그 동안 다른 프로그램을 실행하는 방식이다.
- 입출력과 프로그램의 실행을 병렬로 할 수 있어 CPU 사용 효율이 증가한다.
- 시분할 (Time sharing) 시스템
- 다중 프로그래밍 시스템은 사용자와의 상호작용을 제공하지 못했기 때문에 등장한 시스템이다.
- 다중 프로그래밍과 달리 정해진 시간이 되면 무조건 다음 순서의 작업을 실행하는 방식이다.
- 작업 교대 시간이 매우 짧아 프로그램이 실행되는 동안 사용자는 컴퓨터와 상호작용을 한다.
- 가상 메모리를 사용하여 많은 메모리를 사용할 수 있다.
- 다중 처리 (Multi-processing) 시스템
- 여러 개의 CPU와 한 개의 주기억 장치로 여러 프로그램을 동시에 처리하는 시스템이다.
- 실시간 처리(Real time)시스템
- 다중 모드 시스템
- 일괄 처리 시스템 + 시분할 시스템 + 다중 처리 시스템 + 실시간 처리 시스템
- 분산 처리 시스템
- 네트워크를 통해 통신하여 그 기능을 제공한다.
- 여러 프로세서를 사용하지만 밀결합(tightly-coupled) 구조가 아닌 소결합(loosely-coupled) 형태이다.
- 컴퓨터 버스나 클럭을 공유하지 않고 네트워크를 이용해 통신한다.
kernel
kernel: 알맹이
- 운영 체제의 일부로 하드웨어와 프로세스의 운용을 위한 소프트웨어(operating system의 core program)
- user program(or application) 수행에 필요한 여러 서비스를 제공하기 위한 인터페이스를 제공한다.
- 컴퓨터 H/W (CPU, memory)의 resource들을 관리한다.
H/W resource management
- kernel은 computer H/W의 physical resource를 관리하며 이들의 abstraction(or virtualization)인 virtual resource를 생성 및 관리한다.
- virtual resource는 physical resource를 abstraction한 것으로 user program들에서는 해당 virtual resource가 보이며 이를 통해 user program들은 현재 자신이 특정 H/W를 혼자서 쓰는 것처럼 느끼게 된다.
physical H/W | Virtual H/W |
---|
CPU | task or processor |
memory (or RAM) | Page or Segment |
Disk (or HDD, SDD) | File |
Network | soket |
- 다음은 kernel이 수행하는 H/W resource 관리이다.
- System call interface: application에서 system으로 어떤 명령을 주고 싶을 때(e.g.
open()
으로 파일 열기) system call이라는 것을 하는데 이 system call이 interface를 통해서 전달이 된다.
- Process management: OS는 수많은 process를 관리한다. process는 실행 중인 프로그램을 말하고 OS는 CPU나 메모리 같은 resource를 사용해서 process를 수행한다.
- Memory management: 물리 memory 공간을 어떻게 사용할지에 대해서도 관리한다. 독립적인 공간을 확보해주거나 효율적으로 사용할지도 관리한다.
- network stack: network의 data 입출력을 받아다가 application으로 올려주기도 하고 data를 network device를 통해서 송수신 해준다.
- File system management: 기록된 data를 물리적인 장치에 저장하거나 읽어주는 기능을 한다. 파일단위로 삭제하거나 access 할 수 있다.
- Device driver: computer에 연결된 장치들을 driver라는 매게체를 통해서 제어하고 application 단에서는 추상적으로 제어할 수 있도록 한다.
- interrupt handling
- I/O Communication
입출력 통신관리
OS는에서의 역할
- OS는 kernel에 system program (shell 및 여러 S/W)들이 더해져서 구성된다.
- 추가되는 system program들은 file system utility, windowing system 등으로 User 또는 User program들이 컴퓨터를 보다 편리하게 사용할 수 았도록 해준다.
- 사실 kernel은 컴퓨터와 직접적으로 interaction은 하지 않고 shell이 중간에 위치하여 이를 담당한다.
kernel은 shell을 통하거나 다른 User program(or application)을 통해 사용자와 interation을 수행한다.
terminal
- user가 computer와 상호작용할 수 있도록 하는 장치이며 text 입출력 환경이다.
- 일반적으로 input data를 위한 keyboard, ouput을 보여주는 screen 그리고 접근되는 computer와의 연결으로 구성된다.
console
- physical terminal으로 terminal의 일종이다.
- computer control을 포함하는 panel 도구이다.
- terminal은 원격제어 환경까지 포함하는 더 넓은 의미이다.
shell
kernel의 반대말로 조개 껍대기를 의미
- OS의 service와 application 운영의 접근을 위한 user interface를 제공하는 program이다.
- command-line interpreter이다.
- e.g. bash, powershell, Zsh
reference
1.kernal wikidocs
2. https://www.geeksforgeeks.org/difference-between-terminal-console-shell-and-command-line/
3. https://hanamon.kr/%ED%84%B0%EB%AF%B8%EB%84%90-%EC%BD%98%EC%86%94-%EC%89%98-%EB%AA%85%EB%A0%B9%EC%A4%84terminal-console-shell-command-line%EC%9D%98-%EC%B0%A8%EC%9D%B4-2/