운영체제는 컴퓨터의 하드웨어와 소프트웨어를 관리하는 소프트웨어다. 운영체제는 다양한 어플리케이션 간의 컴퓨터 리소스 공유와 모든 활동을 관리 및 제어하고, 프로세서 관리, 메모리 관리, 파일 관리 등 모든 기본 기능을 포함한다.
운영체제의 목적은 사용자가 편리하고 효율적으로 프로그램을 실행할 수 있는 환경을 제공하는 것이다. 운영체제는 컴퓨터 하드웨어와 소프트웨어를 관리하는 소프트웨어로, 하드웨어는 컴퓨터 시스템의 올바른 작동을 보장하고 사용자 프로그램이 시스템의 적절한 작동을 방해하지 못하도록 하는 적절한 메커니즘을 제공해야한다. 운영체제는 컴퓨터에서 항상 실행되는 프로그램(커널)이며, 나머지는 모두 응용 프로그램이다.
운영 체제는 다음과 같은 일을 한다.
- 모든 컴퓨터 리소스를 제어한다.
- 응용 프로그램을 실행하고, 프로그램에 리소스를 제공한다.
- 사용자에게 인터페이스를 제공한다.
- 오류를 방지하기 위해 응용 프로그램을 모니터링한다.
메모리 관리
운영체제는 주메모리를 관리한다. 주메모리는 주소가 할당된 수많은 바이트 배열로 구성된다. 주메모리는 빠른 저장소이며, CPU에서 직접 액세스할 수 있다. 프로그램을 실행하려면 먼저 주메모리에 로드해야한다. 운영체제는 다양한 프로세스에 대한 메모리 할당 및 할당 해제를 관리하고 다른 프로세스가 한 프로세스에 할당된 메모리를 사용하지 않도록 한다.
- 운영체제는 메모리가 어떤 프로그램에 사용되고 있는지 추적한다.
- 멀티프로그래밍에서 운영체제는 프로세스가 메모리에 접근하는 순서와 시간을 정한다.
- 프로세스의 요청이 있으면 메모리를 할당하고 프로세스가 종료되거나 I/O작업을 수행중이면 메모리 할당을 해제한다.
프로세서 관리
멀티프로그래밍 환경에서 운영체제는 프로세스가 프로세서에 액세스하는 순서와 각 프로세스가 얼마나 많은 처리 시간을 가질지 결정한다. 이러한 작업을 프로세스 스케쥴링이라고 한다. 운영체제는 프로세서를 관리하여 프로세서에 다양한 작업을 할당하고 각 프로세스가 프로세서에서 제대로 작동할 수 있는 충분한 시간을 받도록 한다.
장치 관리
운영체제는 드라이버를 통해 장치를 관리한다.
- 시스템에 연결된 모든 장치를 추적한다. 모든 장치를 담당하는 프로그램을 지정한다. 이 프로그램을 입출력 컨트롤러라고 한다.
- 어떤 프로세스가 특정 장치에 접근할 수 있는지, 그리고 얼마나 오랫동안 접근할 수 있는지 결정한다.
- 장치를 효과적이고 효율적으로 할당한다. 더 이상 필요하지 않으면 할당 해제한다.
- 다양한 입출력 장치의 작동을 제어한다. 입출력 장치로부터 요청을 수신하고 작업을 수행한 후 다시 통신한다.
파일 관리
파일 시스템은 효율적이고 쉬운 탐색 및 사용을 위해 디렉토리로 구성된다. 이러한 디렉토리에는 다른 디렉토리와 다른 파일이 포함될 수 있다. 운영체제는 다음과 같은 파일 관리 활동을 수행한다. 정보다 저장된 위치, 사용자 액세스 설정, 모든 파일의 상태 등을 추적한다. 이러한 기능을 파일 시스템이라고 한다. 운영체제는 파일의 생성, 삭제, 전송, 복사 및 저장과 관련된 정보를 체계적으로 추적한다. 또한 무단 액세스로부터 보호하여 파일 디렉토리 구조를 포함하여 이러한 파일에 저장된 데이터의 무결성을 유지한다.
사용자 인터페이스 또는 명령 인터프리터
사용자는 운영체제를 통해 컴퓨터 시스템과 상호작용한다. 따라서 운영체제는 사용자와 컴퓨터 하드웨어간의 인터페이스 역할을 수행해야한다. 사용자 인터페이스는 명령 세트 또는 그래픽 사용자 인터페이스(GUI)를 통해 제공된다. 인터페이스를 통해 사용자는 어플리케이션 및 머신 하드웨어와 상호작용한다.
보안
운영체제는 암호 보호 또는 유사한 다른 기술을 사용하여 사용자 데이터를 보호한다. 또한 프로그램과 사용자 데이터에 대한 무단 액세스를 방지한다. 운영체제는 사용자 데이터의 무결성과 기밀성을 보장하는 다양한 기술을 제공한다.
시스템 성능 제어
운영체제는 시스템 성능을 제어하고 최적화하는데 중요한 역할을 한다. 하드웨어와 소프트웨어 사이의 중개자 역할을 하여 컴퓨텅 리소스가 효율적으로 활용되도록 한다. 기본적인 측면 중 하나는 리소스 할당으로, 운영체제가 CPU시간, 메모리 및 I/O장치를 다양한 프로세스에 할당하여 공정하고 최적의 리소스 활용을 제공하기 위해 노력한다. 중요한 기능인 프로세스 스케쥴링은 단일 작업이 CPU를 독점하는 것을 방지하고, 어떤 프로세스나 스레드를 실행해야 효율적인 멀티태스킹이 가능할지 결정한다.
오류 감지
운영체제는 오류를 감지하고 컴퓨터 시스템이 오작동하는 것을 방지하기 위해 시스템을 지속적으로 모니터링한다. 운영체제는 외부 위협이나 악성 소프트웨어 활동이 있는지 확인한다. 또 하드웨어에 어떤 유형의 손상이 있는지도 확인한다. 이 과정에서 사용자에게 여러가지 경고를 표시하여 시스템에 발생한 손상에 대한 적절한 조치를 취할 수 있도록 한다.
네트워크 관리
운영체제는 컴퓨터가 인터넷과 통신하도록한다. 데이터가 패키징되고 네트워크를 통해 전송되는 방식을 관리하여 데이터가 안전하고 올바른 순서로 도착하도록한다.
'일기' 카테고리의 다른 글
javascript - var, let, const (0) | 2025.02.04 |
---|---|
(Javascript) 뒤에 있는 큰 수 찾기 (0) | 2025.02.03 |
컴퓨터 메모리 (0) | 2025.01.21 |
분산 시스템 아키텍쳐 (0) | 2025.01.20 |
TCP 소켓 프로그래밍 실습 (0) | 2025.01.17 |