How OS work in General

차희선·2023년 4월 6일
0

백엔드 로드맵

목록 보기
8/10

OS의 일반적인 작동원리

OS(Operating System)

컴퓨터 시스템의 각종 자원을 효율적으로 관리하고 컴퓨터 HW와 User간의 인터페이스를 담당하는 시스템 프로그램
사람이 컴퓨터를 편하게 이용하고 사용자 대신 HW를 효율적으로 관리

OS의 목적

  • 처리능력(Throughput)의 향상 : 일정한 단위 시간 내에 처리할 수 있는 일의 양으로 수치가 높을 수록 좋다.
  • 반환시간(Turn-around time)의 최소화 : 어떠한 작업을 시작한 시간부터 끝날 때까지 걸리는 시간
  • 사용 가능도(Availability)의 향상 : 시스템을 이용하고 싶을 때 언제든지 이용할 수 있는 가를 나타냅니다. 고장시 복구 시간등의 개념또한 가집니다.
  • 신뢰도(Reliability)의 향상 : 시스템이 주어진 문제를 얼마나 정확하게 해결할 수 있는지를 나타냅니다.

OS 작동방식

멀티태스킹의 스케쥴링 방식

  • 멀티 태스킹은 다수의 작업(Task)을 운영체제의 스케줄링에 의해 번갈아 가며 수행되도록 해주는 것을 의미한다.
  • Task란 작업의 단위를 말하며, 프로세스, 스레드가 모두 작업의 단위가 될 수 있다.

- 멀티프로그래밍(Multi programming)

멀티 프로그래밍은 하나의 프로세서가 하나의 프로세스를 수행하는 동안 다른 프로세스에 접근할 수 있도록 하는 방법을 의미한다. 멀티 태스킹을 구현하는 스케쥴링의 한 방식
멀티프로그래밍

멀티프로그래밍 vs 멀티태스킹
앞에서 말한 멀티 프로그래밍은 프로세서의 자원낭비를 막기 위함이고,
멀티태스킹은 정해진 시간동안 각각의 task를 번갈아가며 수행하는 것을 의미한다.

- 멀티스레딩(Multi threading)

  • 하나의 프로세스가 동시에 여러 개의 스레드를 수행할 수 있도록 해주는 것이다.
  • 하나의 프로세스에는 하나 이상의 스레드가 존재할 수 있다. 프로세스를 생성하는 비용보다 스레드를 생성하는 비용이 더 저렴하기 때문에 프로세스에 다수의 스레드를 생성하여 병렬처리하는 것이다.

- 멀티프로세싱(Multi processing)

멀티프로세싱
다수의 프로세서가 서로 협력적으로 일을 처리하는 것을 의미한다.

멀티 프로세싱 vs 멀티 스레딩

프로세스: 실행될 때 OS로부터 자원을 할당받아 실행되는 프로그램
스레드: 한 프로세스 내에서 동작되는 여러 실행의 흐름

멀티프로세싱 : fork를 통해 프로세스를 다수개로 늘려 여러 개의 프로그램들을 병렬로 처리하며, 멀티스레딩은 하나의 프로그램 안에서 병렬 처리를 한다.
멀티 스레딩 : 멀티 프로세싱보다 훨씬 적은 자원을 소모하기 때문에 더 효율적이나 안정성 측면에서는 멀티 프로세싱이 안정적이다.

- 시분할방식(Time Sharing) (=라운드 로빈(Round Robin))

- 특정 작업 시간(TIme Slice, Quantum)동안 CPU를 사용한 후에 다시 대기하고 대기큐에 있는 작업을 꺼내와서 다시 CPU를 사용하는 것을 반복
- 사용자 입장에서는 여러 개의 작업이 동시에 수행하는 것처럼 느낄 수 있다.

- 실시간시스템방식 (Real-time)

- 단말기나 제어 대상으로부터 처리를 요구하는 자료가 발생할 때마다 즉시 처리하여 그 결과를 출력하거나 요구에 대하여 응답하는 방식

멀티태스킹의 종류

- 선점형 멀티태스킹

하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할수 있다는 뜻이다.

- 비선점형 멀티태스킹

하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없다.

https://cloudstudying.kr/lectures/184
https://oizys.tistory.com/9

0개의 댓글