운영체제,

OS(Operating System) - Introduction to OS

Mar 16, 2021 · 2 mins read

  • 공룡책 10판(Operating System Concepts 10th)과 수업 내용을 참고로 한 내용 정리이다.
  • 정리 목적 그리고 배우는 입장의 포스팅이기에 잘못된 내용이 있을 수 있다.

Intro

마지막 학기에 운영체제를 듣게 되었는데, 주위에서 항상 중요하다고 강조하던 과목이기도 하고 교수님께서 매주 퀴즈를 보는 관계로 정리가 필요한 것 같아 작성하게 되었다. 정리를 잘하진 않지만 최대한 정돈되게 작성해보려 한다.



OS(운영체제)란 무엇인가?

OS(Operating System)는 하드웨어 관리, 자원 관리, 그리고 유저들이 하드웨어를 효과적으로 사용할 수 있도록 편의성을 제공해주는 소프트웨어이다.
대표적으로 Linux, MacOS, Windows 등이 존재한다.

  • 여기서 하드웨어는 CPU와 메모리, 입출력 장치(I/O device)로 구성되어 있다.
  • 자원 관리란 운영체제가 컴퓨터 시스템이 동작 중에 이들의 자원을 적절하게 사용할 수 있도록 함을 의미한다.


운영체제의 역할


앞에서도 말했다시피 OS는 하드웨어를 관리한다. 막연하게 들릴 수도 있겠지만 본래 하드웨어는 매우 복잡하여 사용자가 하나하나 직접 동작시켜야 했다.(입출력, 데이터 저장 등) 운영체제는 이러한 기능 등을 모아놓은 소프트웨어라고 할 수 있다.

또한 OS는 하드웨어와 사용자가 실행시키는 응용프로그램 사이에서 동작하여 효과적인 작업 즉 편의성을 제공한다.

  • 시스템 프로그램 <-> 응용 프로그램
    시스템 프로그램은 하드웨어 및 프로그램 작업을 조정함(하드웨어와 밀접, 운영체제도 시스템 프로그램)
    응용 프로그램은 사용자의 작업 수행을 돕는 프로그램(사용자와 밀접)

    image


운영체제의 특징


Protection: 영역 외의 프로세스를 침범하지 않게 막는 역할.
OS가 각 프로세스에게 독립성을 보장하는 것으로 이 기능으로 각 프로세스가 자신의 영역 안에서만 접근 가능하며 다른 프로세스나 커널 영역에 접근할 수 없다.

Fairness: 자원을 공평하게 분배해준다.
Efficiency: 효율성을 좋게 해준다(예를 들면 배터리의 효율적 사용)
Concurrency: 병행성, 한 번에 여러 개의 프로그램이 동시에 동작하는데 OS가 어떻게 지원하는가(time-sharing 방식)

운영체제의 역사


1. 초기의 컴퓨터는 OS의 개념이 없었다.
메모리 스위치를 통해 바이너리 프로그램을 입력. 나중에 컴파일러 등이 추가 되었다.

2. Batch processing systems
작은 크기의 단순한 OS였으며 디스크 관리 시스템이었다. Offline processing 방식이었는데, 당시 컴퓨터가 굉장히 고가였고 기술적인 한계도 존재하였기에 처리할 내용들(카드)을 모아서 한꺼번에 처리하는 방식이었다.(OMR 카드 리딩이랑 비슷) 추후에 마그네틱 테잎으로 대체되었으며 퍼포먼스는 카드 리더기의 성능에 따라 달랐다.

3. Multi-programming system
멀티프로그래밍 시스템의 가장 큰 특징은 바로 프로그램이 concurrently하게 처리된다는 점이다.
이를 다른 표현으로 IO/CPU Overlap이라고 부르는데 CPU처리가 출력 처리보다 매우 빨랐고, 당시 고가의 컴퓨터를 더 효율적으로 사용하기 위해 고안된 방법이다.
CPU가 처리한 데이터를 출력 장치에 보낸 후 CPU는 다른 명령어를 처리하게끔 하는 것이다. 즉 데이터의 입출력이 진행되면서 동시에 CPU의 처리가 가능하게 된 것이다.

한계: 아직은 리더기에 의한 처리 즉 Offline 처리였고, 하나의 처리가 모두 끝나야 다음 프로그램으로 넘어갈 수 있었다.

4. Time-Sharing system
Online 프로세싱이 가능해졌고 Terminal이 생기며 CPU와 통신으로 연결됨(터미널을 통해 유저와 컴퓨터가 소통) Time-Sharing이라는 방식이 도입 되었는데, 이는 기존의 방식이 프로그램의 크기에 따라 Response time이 들쭉날쭉하였으나 Time slice를 만들어 모든 프로세스가 일정한 시간만큼 동등하게 할당받아 사용하는 방식이다. 이로서 Response time 간격이 짧아졌다(Round-Robin Scheduling)

5. 1980 이후
반도체 기술의 발전으로 멀티 프로세서, 스토리지, PC의 등장으로 CPU의 하중이 많이 줄어 들었다.(계산량 분산)




Written by