learning/Operating System

운영체제(OS, opearting system) 설명

Aranea 2024. 3. 17. 15:06

운영체제는 우리가 컴퓨터를 실행할 때, 가장 먼저 만나볼 수 있어요
운영체제 컴퓨터를 효율적이고 편리하게 활용할 수 있게 도와주는 친구랍니다.

 

이런 운영체제는, 컴퓨터를 효율적이고 편리하게 활용할 수 있도록 도와주며,

사용자와 하드웨어의 상호작용을 원활히 수행할 수 있도록 하는 중계 프로그램입니다

 

또한, 시스템의 자원을 보호하기 위해 응용 프로그램/사용자에게서 모든 컴퓨터 자원을 숨기는데요

 

그렇다면 사용자는 어떻게 사용할 수 있을까요?

시스템 호출(call) 을 통해 우리는 필요한 프로그램 실행을 요청할 수 있답니다!

 


 

다음으로, 운영체제 구조를 살펴볼까요

 

운영체제는 크게 커널과 인터페이스로 나뉘는데요

커널은 운영체제의 핵심이 되는 프로그램으로,

시스템의 모든 부분을 관리하고 제어할 수 있답니다

따라서 사용자 및 응용프로그램은 커널을 통해 컴퓨터 자원에 접근합니다

 

(커널에서 실질적인 데이터를 넘겨주면, Interface는 사용자에게 다듬어 제공)

 

간단히 인터페이스에 대한 설명을 짚고 넘어가보자면,

사용자 편리를 위한 기능이라 생각해주세요!

(쿠키 반죽) ----> ₍ᐢ.ˬ.ᐢ₎ (틀) -----> 사용자"아 이거 동물 모양 쿠키구나!"

 


 

그런 운영체제의 역할은 다음과 같습니다

 

자원 관리

> 응용 프로그램에게 컴퓨터 시스템 자원 할당
> 여러 개일 경우, 적당한 순서로 자원을 배분하고 회수

 

 

자원 보호

> 비정상적 작업으로부터 컴퓨터 자원 보호

 

 

하드웨어 인터페이스 제공

> 복잡한 과정 생략하고 사용자가 다양한 장치를 사용할 수 있도록 한다.

 

 

사용자 인터페이스 제공

> 사용자의 편리한 운영체제 사용을 위해 지원되는 기능

 


 

이어서 운영체제의 목적입니다.

사용자가 편리하게 작업할 수 있는 환경을 제공하는 것. 이 목표들을 기준으로 지금 우리가 사용하는 운영체제까지 끊임없이 발전해온거랍니다 😊

 

  • 효율성 ↔ 자원 관리

같은 자원으로 더 많은 작업량을 처리하거나,

같은 작업량 처리하는데 더 적은 자원 사용하는 것

 

  • 안정성 ↔ 자원 보호

작업을 안정적으로 처리하고 응용 프로그램의 안전 문제와 하드웨어 적 보안 문제 처리

시스템 문제 발생시 이전으로 복구하는 결함 포용 기능 수행 (ex. 스냅샷)

 

  • 확장성 ↔ 하드웨어 인터페이스 제공

다양한 시스템 자원을 컴퓨터에 추가/제거하기 편리한 것

 

  • 편리성 ↔ 사용자 인터페이스 제공

 


 

그럼 순차적으로 운영체제 시스템이 어떻게 돌아가고 있는지 살펴볼게요

크게 일괄처리시스템→다중&시분할 시스템이 되기까지의 과정을 볼거예요

 

 

일괄처리 시스템(Batch System)? 

초기 운영체제는 데이터를 즉시 처리할 수 없었습니다

그 대안으로 나온 것이 배치 시스템인데요

> 비슷한 요청을 주기적으로 한번에 묶어 처리하는 형식입니다

 

 

그러나 문제점이 몇 가지 있습니다.

 

(1) 입/출력 장치의 속도 < CPU 장치의 속도 == CPU의 IDLE 상태 발생

    여기서 IDLE 상태라는 것은 CPU가 계속해서 쉬는 상태를 일컫는 말로,

    CPU의 IDLE 상태는 곧 비효율적인 자원 사용으로 이어집니다.

 “CPU 효율적이다 == CPU가 쉬지 않도록 계속 돌린다”

 

(2) 처리 속도 부진

    비슷한 것을 묶어 처리하다보니 당장 필요한 결제 시스템 등 처리가 미흡했습니다

 

개선안으로 나타난 것이 “다중프로그램 시스템” 입니다.


 

다중프로그램 시스템(Multi-Programmed System)?

 

 

CPU의 수행 작업이 쉬지 않고 존재합니다 → 효율적인 자원 사용

메모리 내에 있는 작업 중에서 하나를 선택하여 차례대로 실행합니다

 

여기서 메모리 내에 있는 작업이란 프로세스를 뜻하며,

프로세스는 실행중인 프로그램을 뜻합니다.

정확히는 곧 진행될 프로세서의 처리를 기다리고 있는 것이 프로세스입니다.

요청을 하게 되면 메모리에 올라가 처리를 기다립니다.

 

이어서 수행중인 작업이 입출력을 기다리는 상태가 되면,

CPU는 다른 작업으로 넘어가 다음 요청을 수행합니다

 


 

시분할 시스템(Time-Sharing System)

 

다음으로 나타난 것은 시분할 시스템입니다.

이전 다중프로그램 시스템 같은 경우, 한 작업을 마친 후

다음 작업으로 넘어가기 때문에 처리 속도 지연된다는 약간의 결함이 있었습니다

이를 개선하고자 다중 프로그램 ++ upgrade 처럼 나온 것이 시분할 시스템 입니다.

 

 

아주 짧은 주기로 나누어 프로그램에 할당되기 때문에

사용자에겐 프로그램이 동시에 작동하는 것처럼 느껴지게 됩니다

 


💬

이렇게 간단하게 운영체제에 대한 정보를 알아보았는데요.

정리하면서 들었던 생각은 운영체제는

컴퓨터를 다루는 효율의 효율, 개선의 개선을 찾아내다

우리가 아는 모습들로 존재하는 것이 아닌가 싶었어요.

물론 지금 이 순간에도 사용자가 컴퓨터를

더 효율적이고, 안전하고, 편리하게 사용할 수 있도록 운영체제는 발전하고 있겠죠?

같이 열심히 공부해봅시다.

여기까지 읽어주셔서 감사해요