운영체제
컴퓨터나 스마트폰의 기기 그 자체(하드웨어)는 스스로 할 수 있는 일이 없다. 하드웨어에게 일을 시켜야만 의미가 있다.
하드웨어에게 일을 시키는 주체가 바로 '운영체제'이다.
의미
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층.
- 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다.
ex: Windows, Mac OS, IOS, Linux etc.
컴퓨터 시스템의 자원(소프트웨어, 하드웨어)를 효율적으로 관리하는 것이 중요한 역할.
프로세서CPU, 입출력장치, 기억장치 등 리소스를 효율적으로 관리.
주어진 자원으로 최대한의 성능을 내도록 하는 것.
사용자간의 형평성 있는 자원 분배.
파일, 메시지 등도 관리(소프트웨어)
사용자 및 운영체제 자신의 보호
운영체제가 하는 일
1) 시스템 자원(System Resource, 컴퓨터 하드웨어) 관리
운영체제가 없다면, 응용프로그램(애플리케이션)이 실행될 수 없다. 응용 프로그램이 컴퓨터를 이용해 다양한 작업을 하는것이 목적이고, 운영체제는 응용 프로그램이 하드웨어에게 일을 시킬 수 있도록 도와준다.
하드웨어를 구성하는 '일을 하는 CPU', '자료를 저장하는 RAM', '디스크' 등의 시스템 자원(컴퓨터 하드웨어)을 관리하는 주체가 운영체제.
- 프로세서 관리(CPU)
- 메모리 관리
- I/O(입출력) 관리 (디스크, 네트워크 등)
2) 응용 프로그램 관리
모든 응용프로그램들이 시스템의 자원을 마음대로 사용한다면, 해커에 의한 공격에 무방비한 상태가 된다.
악의적인 목적을 가진 프로그램이 디스크의 모든 민감한 정보에 접근하거나 내 스마트폰의 특정 앱이 카메라를 아무때나 실행해서 촬영한다면 끔찍하다.
응용프로그램은 권한에 대한 관리가 필요하다. 또한 여러 사람이 하나의 기기를 사용하는 경우, 사용자를 관리하는 일도 매우 중요하다.
- 응용 프로그램이 실행되고 시스템 자원을 사용할 수 있도록 권한과 사용자를 관리한다.
응용프로그램
- 운영체제를 통해 컴퓨터에게 일을 시키는 것
응용 프로그램이 운영체제를 통해 컴퓨터에게 일을 시키려면, 컴퓨터를 조작할 수 있는 권한을 운영체제로부터 부여받아야 한다. 권한을 부여받고 난 후에는 운영체제가 제공하는 기능을 이용할 수 있다.
응용프로그램이 운영체제와 소통하기 위해서는 운영체제가 응용프로그램을 위해 인터페이스(API)를 제공해야 한다.
응용프로그램이 시스템 자원을 사용할 수 있도록 운영체제 차원에서 다양한 함수를 제공하는 것을 system call이라고 부른다.
운영체제 --("system call"이라는 API 제공)--> 응용프로그램
응용프로그램 --> 운영체제에게 명령(이때 system call이라는 API이용) --> 하드웨어
응용프로그램이 운영체제에게 명령할 때 system call이라는 API를 사용한다.
**모든 그림 및 글의 출처는 '코드스테이츠'입니다.
'Computer Science' 카테고리의 다른 글
컴파일러 vs 인터프리터 (0) | 2023.11.24 |
---|---|
객체지향 프로그래밍에 대해서 (0) | 2023.11.18 |
웹 서버 (0) | 2023.08.16 |
라이브러리(Library) vs 프레임워크(Framework) (0) | 2023.05.25 |
문자열 세트(또는 문자셋) 및 유니코드 & 인코딩, UTF-8란? (0) | 2021.10.31 |