Operating System Ch.1

chezze·2023년 4월 23일
0

Operating System

목록 보기
1/4
post-thumbnail

Operating system overview


What is Operating System?

Operating System은 프로그램의 실행을 제어하는 기능이 구현된 함수들로 구현된 소프트웨어로,
Linux, Windows, MacOS 등이 있다.

OS로 줄여 부르기도 한다.

Operating System이 제공하는 서비스

Operating System은 프로그램과 하드웨어 사이의 인터페이스로 다음과 같은 서비스를 제공한다.

  • 프로그램을 실행
  • 컴퓨터 리소스에 접근
  • 리소스 사용 통계
  • 에러 감지 및 처리

Operating System의 작동 방식

Operating System은 컴퓨터의 보조 기억장치에 저장되어 있다가 컴퓨터가 부팅되면 메인 메모리에 로드되어 실행된다.

kernel이란?

kernelOperating System의 핵심 요소로, 하드웨어와 소프트웨어 간의 상호작용을 관리하는 등
중요한 시스템 작업을 수행한다.



Multi-programming


OS의 발전

  • OS가 존재하지 않던 시기

    컴퓨터가 발명된 초기에는 OS가 존재하지 않았으며, 수동으로 프로그램을 실행하였다.
    그에 따라 프로그램 실행 전 준비 시간이 매우 길었으며, 비효율적이었다.

  • Simple Batch System

    사람을 대체하기 위해 작업을 자동으로 처리하는 Simple Batch System이 고안되었다.
    Simple Batch System에서는 여러 작업이 동시에 실행될 수 없기 때문에,
    하나의 작업을 완전히 실행한 뒤 다음 작업을 실행하는 방식으로 구현되었다.

💡 상주 모니터(Resident Monitor)

이러한 배치 시스템에서 상주 모니터(Resident Monitor)라는 운영체제가 고안되었는데,
상주 모니터는 사용자 프로그램을 실행하는 과정을 제어하는 프로그램이다.

💡 Uni-programming

상주 모니터에 의해 프로그램이 실행되는 모델을 Uni-Programming이라고 하는데,
이는 프로그램이 실행(Run)되고, 다음 프로그램이 실행되기 전까지 대기하는 모델이다
이러한 방식은 작업 간의 경쟁이나 충돌을 방지할 수 있다는 장점이 있지만,
여러 작업을 동시에 실행할 수 없기 때문에 처리 시간이 느리고 비효율적이라는 단점이 있다.
특히 I/O 장치가 사용되는 동안 프로세서가 대기하여 CPU 시간 활용도가 저하될 수 있다는 문제가 있다.

Multi-programming

Uni-programming에서는 하나의 작업이 끝날 때까지 대기해야 하기 때문에 비효율적이다.
이 문제점을 해결하기 위해 고안된 모델이 Multi-programming이다.

Multi-programming에서는 메인 메모리에 두 개 이상의 프로그램이 존재하며,
A 프로그램이 I/O 장치를 사용하는 동안 프로세서가 다른 B 프로그램을 실행한다.

위 그림처럼 작동하기 위해,
Multi-programming에서는 메모리 관리 기능작업 스케줄링 기능이 추가되어야 한다.

또한, 다수의 작업이 메인 메모리에 로드되어야 하므로, 메인 메모리 용량이 높아야 한다.



Time Sharing Systems


Time Sharing

Time Sharing이란, 하나의 프로세서가 다수의 사용자의 요청을
매우 짧은 시간 동안 번갈아가며 처리하여 마치 동시에 사용하는 것처럼 보이게 하는 기법이다.

현재 대부분의 Time Sharing에서는 0.1초를 기준으로 하고 있다.

Multiprogramming vs. Timesharing

Multiprogarmming은 상대적으로 오래 실행해야 하는 프로그램을 실행하는 데 적합하며,
처리량(Throughput)이 Timesharing에 비해 높다.
그러므로 Batch processing과 Background processing에 적합하다.

반면, Timesharing은 대화형 프로그램을 실행하는데 적합하며,
응답 시간(Response time)이 Multiprogramming에 비해 짧다.
interactive processing과 Foreground processing에 적합하다.

💡 Timesharing은 Multiprogramming보다 더 좋은 방식인 것이 아니라,
단지 프로세서의 할당 방식이 다른 것이다.

Symmetric Multi-Processing (SMP)

Symmetric Multi-Processing이란,
여러 개의 프로세서가 연결되어 하나의 시스템으로 동작하는 방식을 말한다.

SMP는 각각의 프로세서가 동일한 작업을 처리하도록 설계되어 있으며,
반대되는 개념으로는 AMP(Asymmetric Multi-Processing)가 있다.

AMP는 각각의 프로세서가 서로 다른 작업을 처리하도록 설계된 구조이다.

Multiprogramming vs. Multiprocessing

MultiprogrammingMultiprocessing은 서로 다른 개념이다.
Multiprogramming은 하나의 프로세서가 여러 개의 프로그램을 번갈아가며 실행하는 것을 의미하고,
Multiprocessing은 여러 개의 프로세서가 동시에 작업을 수행하는 것을 의미한다.

즉, MultiprogrammingMultiprocessing은 하나의 프로세서를 사용하는지, 여러 개의 프로세서를 사용하는지에 따라 구분될 수 있다.

Muliprocessing에서 Multiprogramming 방식을 사용할 수 있지만,
Multiprocessing을 사용하려면 프로세서가 여러 개 있어야 한다.

Multiprocessing을 사용하는 것을 Parallel programming이라고도 하며,
Multiprogramming을 사용하는 것을 Concurrent Programming이라고도 한다.


Operating System의 기능


Operating System의 기능

Operating System은 다음과 같은 기능이 있다.

  • 프로세스 관리
  • 메인 메모리 관리
  • 파일 관리
  • I/O 시스템 관리
  • 보조기억장치 관리
  • 보안 및 보호 관리
  • 네트워킹
  • 명령 해석 시스템

네트워킹과 분산 시스템

Distributed system은 여러 대의 컴퓨터를 네트워크로 연결하여
하나의 컴퓨터처럼 동작하도록 구성된 시스템으로,
이를 통해 사용자는 분산되어 있는 시스템 리소스를 통해 시스템에 접근할 수 있다.

example) ATM, 검색 엔진, ...etc

명령 해석 시스템

명령 해석 시스템은 사용자가 Operating System에게 전달하는 명령을 해석하는 시스템을 말한다.

명령 해석 시스템에는 CLI(Command Line Interface)GUI(Graphical User Interface) 가 있으며, 둘 모두 명령을 해석해 System Call에서 함수를 호출한다.

💡 System Call

System call은 OS에서 제공하는 서비스를 호출하기 위한 인터페이스이다.
일반적으로 사용자 프로그램이 OS에서 제공하는 기능을 직접 호출할 수 없기 때문에 System call을 통해
운영 체제에게 해당 기능을 요청하고, OS는 이에 대한 처리를 수행한 후 그 결과를 반환한다.
profile
주니어 컴공학부생🌱

0개의 댓글