Search
Duplicate
⚙️

운영체제(OS)란?

생성일
2023/02/23 01:13
태그
OS

운영체제(OS)란?

배경

여러 프로그램을 만드는데, 다 따로 만드는 것은 비효율적이다. 공통적인 기능을 묶어서 하나의 프로그램을 만들고, 여러 프로그램이 그걸 사용한다면 훨씬 효율적이다.
공통적인 기능이라면 CPU, 메모리, I/O 장치 등 디바이스와 상호작용하는 등의 작업이다.
하드웨어를 다루는 것은 상당히 복잡, 이런 컴퓨터 하드웨어를 다루는 작업을 대신해주는 소프트웨어가 운영체제이다.

소개

컴퓨터 하드웨어를 다루는 작업을 대신해준다 → 컴퓨터 하드웨어의 추상화
하드웨어를 숨기고, 사용자에게는 하드웨어를 추상화한 소프트웨어를 쓸 수 있도록 인터페이스(System Call)를 제공해준다.
운영체제는 커널(Kernel)명령어 해석기(Command Interpreter)로 나뉜다.
커널 : 운영체제가 수행하는 모든 것이 저장되어 있음
명령어 해석기 : 사용자가 커널에 요청하는 명령어를 해석하여 커널에 요청하고 그 결과를 출력

커널 (Kernel)

기본적으로 메모리에 상주하는 중요한 Core(핵심)이 되는 소프트웨어
프로세스들이 메모리를 공유하고, 디바이스와 상호작용하는 등의 작업을 대신함
사용자가 쉽게 하드웨어에 접근할 수 있게 한다
동시에 많은 프로그램을 수행할 수 있게 한다
정확히 말하면 번갈아가면서 (CPU가 여러개 인것처럼 보이게 한다 → 가상화)
프로그램들이 메모리를 공유 (마치 물리 메모리를 프로세스 각각이 별도로 가지고 있는 것처럼 보이게 한다 → 가상화)

추상화 (Abstraction)

컴퓨터 시스템 하드웨어를 사용자가 사용하기 쉽게 하는 것!
CPU → Process
Memory → MM (Memory Management)
Disk → Files, File, Inode

가상화 (Virtualization)

OS가 작업을 수행하는 기본적인 방법 → 1개를 여러개처럼 보이게 한다.
각 프로세스가 독립적이고, 병렬적으로 동시에 실행되는 것처럼
목적 : 더 많은 프로세스의 실행 → CPU를 쉬지 않게 → CPU의 효율성 극대화

CPU의 가상화

싱글 CPU인데 CPU가 여러개 있는 것처럼 보이게한다
실제로는 아주 짜른 속도로 번갈아가면서 수행 → Context Switching(문맥 교환)을 통해

메모리 가상화

실행 중인 각 프로세스는 동일한 주소에 메모리를 할당한다
가상 주소라는 개념 사용
→ 각각 같은 주소 값을 독립적으로 할당받고, 그것을 업데이트 하는 것처럼 보인다
→ 실행 중인 프로세스들이 각자 실 메모리를 갖는 것처럼

OS의 다른 특징 (사용을 쉽게 만드는)

병행성 (Concurrency)
OS는 한번에 많은 프로세스를 저글링(막 만들기)하여 먼저 한 프로세스를 실행한 다음 다른 프로세스를 실행
먼저 한 프로세스를 실행한 다음, 다음 프로세스를 실행 → 세마포터, 모니터, 락, 쓰레드 개념을 사용
공유 데이터를 접근하는 순서에 문제가 발생할 수도 있다.
영속성 (Persistence)
디스크에 파일을 쓰기 위한 OS의 기본 기능
전원이 꺼지더라도 / 시스템이 손상되더라도 데이터를 지속적으로 저장하려면 하드웨어와 소프트웨어가 필요

ref)