운영체제 (Operatting System)
컴퓨터 시스템의 각종 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영, 관리함으로써 사용자가 시스템을 이용하는데 편리함을 제공하는 시스템 소프트웨어
✔ 즉, 사용자가 컴퓨터(하드웨어)를 사용하기 위해 필요한 소프트웨어
- 사용자는 어플리케이션(App)을 통해 컴퓨터에 원하는 작업을 요청
- OS 위에서 구동하는 App은 OS에게 해당 요청을 전달
- OS에서 해당 작업에 필요한 자원 할당
- 하드웨어에서 해당 작업 수행할 수 있게 도와줌
운영체제는 사용 분류에 따라 임베디드, 서버, 모바일, 데스크탑으로 분류될 수 있다.
대표적인 운영체제 : Windows, Linux, Mac Os, iOS ...
1. 운영체제의 목적 🚗
주된 목적은 컴퓨터 하드웨어를 관리하는 것이다.
컴퓨터에는 수 많은 하드웨어가 존재한다. CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등이 있으며 이를 잘 관리해주어야 컴퓨터를 효율적으로 사용할 수 있다. 운영체제의 성능이 좋을수록 컴퓨터의 성능 역시 좋아진다고 할 수 있다.
운영체제는 사용자에게 편의를 제공하는 목적도 가지고 있다. 운영체제가 없다면 위에서 말한 하드웨어에 관한 모든 관리를 사용자가 해야한다는 점과 같이 컴퓨터를 사용하는데 매우 불편함을 겪을 것이다.
하지만 현재 많은 발전을 거쳐온 운영체제가 설치된 컴퓨터는 사용하기에 매우 편리하다는 것을 느낄 수 있다.
대표적으로 스마트폰이 있다. 스마트폰 역시 컴퓨터의 일종이고 운영체제가 설치되어 있다. 그리고 스마트폰은 남녀노소 누구나 할 것 없이 사용법을 빠르게 익힐 수 있다.
✔ 운영체제는 컴퓨터의 성능을 높이고(performance), 사용자에게 편의성 제공(Convenience)을 목적으로 하는 컴퓨터 하드웨어 관리하는 프로그램이다.
2. 운영체제의 역할 🚓
1. 프로세스 관리
운영체제에서 작동하는 응용 프로그램을 관리하는 기능
프로세서(CPU)를 관리하는 것이라고 볼 수도 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고,
실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리한다.
keyword : 프로세스, 스레드, 스케줄링, 동기화, IPC 통신
2. 저장장치 관리
1차 저장 장치에 해당하는 메인 메모리와 2차 저장 장치에 해당하는 하드디스크, NAND 등을 관리하는 기능
- 1차 저장장치
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 2차 저장장치
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
- FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중
keyword : 메모리 관리, 가상 메모리 파일, 파일 시스템
3. 네트워킹
컴퓨터 활용의 핵심
TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야한다. 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.
keyword : TCP/IP, 기타 프로토콜
4. 사용자 관리
하나의 PC로도 여러 사람이 사용하는 경우가 있다. 그래서 운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 지원해야한다. (하나의 PC에 여러 계정이 있는 경우 등)
사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 한다.
운영체제는 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 역할(사용자 관리 기능)을 한다.
keyword : 계정 관리, 접근 권한 관리
5. 디바이스 드라이버
운영체제는 시스템의 자원, 하드웨어를 관리한다.
시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.
따라서, 운영체제 안에 하드웨어를 추상화 해주는 계층이 필요한데, 이 계층을 '디바이스 드라이버'라고 한다.
하드웨어의 종류가 많은 만큼 수많은 디바이스 드라이버들을 관리하는 기능을 한다.
keyword : 순차접근 장치, 임의 접근 장치, 네트워크 장치
3. 운영 체제의 목표 🚚
처리 능력(Throughput) | 시스템의 생산성을 나타내는 단위, 일정 시간 동안 처리하는 양 |
총 처리 시간(Turnaround Time) | 작업 의뢰 후 시스템에서 결과가 얻어질 때까지의 시간 |
신뢰도(Reliability) | 주어진 문제를 얼마나 정확하게 처리하는 가의 정도 |
사용 가능도(Availability) | 시스템을 얼마나 빠르게 사용할 수 있는 가의 정도 |
4. 운영체제의 위치 🛺
사용자 프로그램(Application)은 특정 운영체제에 맞추어 만든다. 그렇기때문에 한 애플리케이션은 다른 운영체제에서 수행할 수 없다.(하드웨어가 같은 것은 전혀 상관 없음) 윈도우에서 수행하는 프로그램을 그대로 리눅스로 옮기면 수행되지 않는 것과 같다.
애플리케이션은 위의 그림과 같이 운영체제 위에서 수행된다. 즉, 하드웨어 자원을 직접적으로 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.
📖 reference
IT관련용어 [OS] 운영체제란 무엇인가? (운영체제 종류와 특징)
gyoogle/tech-interview-for-developer
'Computer Science 📑' 카테고리의 다른 글
[OS/운영체제] CS 질문 정리 (0) | 2023.02.07 |
---|---|
[OS/운영체제] 메모리 계층(Memory Hierarchy) (4) | 2023.01.29 |
[OS/운영체제] CPU 스케줄링과 알고리즘 (1) | 2023.01.24 |
[Network/네트워크] CS 질문 정리 (0) | 2023.01.17 |
[Network/네트워크] 쿠키와 세션, 캐시 (1) | 2023.01.17 |
댓글