운영체제는 우리가 컴퓨터를 실행할 때, 가장 먼저 만나볼 수 있어요
운영체제 컴퓨터를 효율적이고 편리하게 활용할 수 있게 도와주는 친구랍니다.
이런 운영체제는, 컴퓨터를 효율적이고 편리하게 활용할 수 있도록 도와주며,
사용자와 하드웨어의 상호작용을 원활히 수행할 수 있도록 하는 중계 프로그램입니다
또한, 시스템의 자원을 보호하기 위해 응용 프로그램/사용자에게서 모든 컴퓨터 자원을 숨기는데요
그렇다면 사용자는 어떻게 사용할 수 있을까요?
시스템 호출(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 처럼 나온 것이 시분할 시스템 입니다.
아주 짧은 주기로 나누어 프로그램에 할당되기 때문에
사용자에겐 프로그램이 동시에 작동하는 것처럼 느껴지게 됩니다
💬
이렇게 간단하게 운영체제에 대한 정보를 알아보았는데요.
정리하면서 들었던 생각은 운영체제는
컴퓨터를 다루는 효율의 효율, 개선의 개선을 찾아내다
우리가 아는 모습들로 존재하는 것이 아닌가 싶었어요.
물론 지금 이 순간에도 사용자가 컴퓨터를
더 효율적이고, 안전하고, 편리하게 사용할 수 있도록 운영체제는 발전하고 있겠죠?
같이 열심히 공부해봅시다.
여기까지 읽어주셔서 감사해요
'learning > Operating System' 카테고리의 다른 글
컴퓨터의 성능을 향상 시키는 기술? (0) | 2024.03.31 |
---|---|
컴퓨터의 기본 구조를 알아보자 (0) | 2024.03.31 |