운영체제는 하나의 소프트웨어이다.
운영체제는 컴퓨터 하드웨어와 스프트웨어 간의 중간 다리 역할을 해준다.
운영체제가 하는 일을 무엇이 있을까??
1. 프로세스 관리: 실행 중인 프로그램을 관리
2. 메모리 관리: 메모리 할당 및 해제
3. 파일 시스템 관리: 데이터 저장 및 검색
4. 입출력 관리: 장치와의 데이터 교환
5. 보안 및 보호: 자원 접근을 통제
그러면 대체 왜 운영체제가 필요한 것일까?
운영체제가 없으면 하드웨어를 직접 제어야하기 때문에 효율성이 떨어진다. 운영체제는 하드웨어와 소프트웨어를 연결하고, 자원을 효율적으로 관리할 수 있게 한다. 그리고 여러 작업을 동시에 처리할 수 있게 도와준다.
운영 체제가 무엇을 책임지고 운영을 하는 것일까?
1. 운영체제는 하드웨어를 관리한다.(CPU, 메모리, 디스크, 네트워크, I/O 장치 등)
2. 소프트웨어를 실행한다.(프로세스를 실행하고 필요한 자원을 배분)
3. 사용자와의 인터페이스를 제공한다(명령어 인터프리터, GUI를 통해 사용자와 시스템 상호작용을 지원한다.)
4. 다중 작업을 처리한다(여러 프로그램이 동시에 실행될 수 있도록 스케줄링한다.)
가상 기계란?
가상 기계는 운영체제가 제공하는 가상화 기술을 이용해 실제 하드웨어 자원을 추상화여 소프트웨어적으로 구현한 컴퓨터 시스템이다.
CPU 가상화, 메모리 가상화 등 물리적인 자원을 논리적으로 나눌 수 있다. 그리고 독립적인 실행 환경을 제공한다.
하나의 컴퓨터에서 window와 linux를 동시에 실행이 가능하게 한다. 각각 서로 다른 작업을 할 수도 있다.
VirtualBox(가상화 소프트웨어)를 활용해서 하나의 컴퓨터에서 window와 linux를 둘 다 실행했다고 치자. window에서는 게임 linux에서는 코딩을 하고 있는데 window에서 블루스크린이 발생해서 linux에는 영향을 주지 않는다. 즉 독립적인 실행 환경을 제공한다는 말이다.
API란?
응용프로그램과 운영체제 간의 상호작용을 가능하게 해주는 인터페이스이다.
파일을 열거나 저장하는 작업을 수행하려면 복잡한 하드웨어 명령이 필요하다. API를 통해 간단하게 이를 처리할 수 있다.(open, read, write) 운영체제는 이러한 API 요청을 받아 하드웨어와 상호작용한다.
System API란?
운영체제가 제공하는 API이다. 프로세스 관리, 메모리 관리, 파일 시스템 제어 등에 사용된다.(read, write, fork)
System Call이란?
운영체제의 System API로 사용자 애플리케이션이 운영체제의 핵심 기능을 요청하는 데 사용된다.
예를 들면 파일을 열 때 open함수는 운영체제의 시스템 호출을 통해 하드웨어 작업을 수행한다.
운영체제는 자원을 관리하기 때문에 자원관리자라고도 불린다.
운영체제가 관리하는 자원은 CPU, 메모리, 디스크, SSD, 입출력 장치(I/O) 등이 있다.
자원에 대해 자원 할당, 자원 보호, 자원 효율성 관리, 동시성 관리 등을 한다.
가상화에는 대표적으로 CPU 가상화, 메모리 가상화가 있다.
CPU 가상화를 통해 하나의 CPU를 가지고 여러 개의 프로그램을 실행시킬 수 있다.
메모리 가상화는 운영체제가 실제 물리적 메모리를 추상화하여, 프로그래머가 메모리 관리의 복잡성을 신경 쓰지 않고 프로그램을 개발할 수 있도록 하는 기술이다.
병행성은 운영체제가 동시에 여러 작업을 실행하는 능력을 의미한다. 멀티태스킹, 시스템 자원의 효율적 사용을 위해서는 병행성이 꼭 필요하다.
프로세스 수준 병행성:웹 브라우저를 사용하면서 음악을 들음.
스레드 수준 병행성:웹 브라우저가 웹 페이지를 로드하면서 스크롤을 처리
영속성은 데이터를 휘발성 메모리가 아닌 비휘발성 장치에 영구적으로 저장하는 것을 의미한다. 운영체제는 이를 효율적이고 신뢰성 있게 처리한다.
자세한 내용은 뒤에 차차 배워갈 예정이다.

'CS > OS' 카테고리의 다른 글
Multi-Level Feedback Queue란? (0) | 2025.01.10 |
---|---|
Scheduling이란? (0) | 2025.01.09 |
제한적 직접 실행이란? (1) | 2025.01.09 |
Process API란? (0) | 2025.01.08 |
프로세스란? (1) | 2025.01.07 |