운영체제는 사용자와 H/W 사이에서 중계 역할을 하는 녀석이다. 아래 그림을 통해 어떻게 중계하는지 확인할 수 있다.
실제 응용 소프트웨어를 사용하기 위해 키보드, 마우스 입력을 모두 처리하고 모니터의 출력을 처리하는 작업은 OS가 다 수행하고있다. 그럼 여기서 의문점이 발생할 것이다.
OS는 하드웨어인가? 소프트웨어인가? 어느 위치에서 동작하는가?
OS는 하드웨어의 입/출력을 관리하지만 정확히 소프트웨어에 해당한다. 소프트웨어 중에서도 System Software에 해당된다. 그럼 또, System Software가 무엇이냐고 묻게 될 것이다. OS에서 System Software에 대해서는 자세하게 알 필요가 없다. 왜냐하면 시스템 프로그래밍이나 리눅스 시스템 프로그래밍과 같은 System Software를 주로 다루는 학문에서 배울 수 있다. OS는 '개념'을 위주로 하는 학문이라고 생각하면된다.
우선, 운영체제를 학습하기 앞서 필요한 시스템 소프트웨어 개념은 컴퓨터를 부팅했을 때, 실행되는 프로그램이라고 생각하면 된다. 본체 시작 버튼을 누르게 되면 C:\Windows\System32 디렉토리에 속하는 windows boot manager를 통해 winload.exe 실행 파일을 실행하게 된다. 이 때, 중요한 드라이버가 로드되는데 이 과정에 속해서 실행되는 모든 프로그램을 포함하여 시스템 소프트웨어라고 부른다.
즉, 실행(메모리에 적재) 된 운영체제는 HW 및 SW를 중계하기 때문에 SW를 실행할 수 있는지?, 현재 HW 입/출력이 진행중인지? 등 중간에서 전체적인 관리자의 역할을 한다. 전체적인 관리를 위해 모든 자원 또한 OS에서 관리한다.
OS는 모든 작업을 핵심 모듈인 커널(Kernel)을 통해 수행한다.
OS의 관리
OS에서 SW와 HW의 자원을 독점으로 관리하게 되는데 이 말은 실행되는 모든 SW와 컴퓨터에 연결된 모든 HW를 관리한다는 의미이다. 기본적으로 컴퓨터에 연결된 HW를 생각해보자. 네트워크 장치(LAN 카드), 입출력 장치(키보드, 마우스, 모니터), 저장 장치(Disk, Drive, Memory, USB), 연산 장치(CPU) 등이 존재한다.
관리 | 용도 | 대상 |
보안관리 | 외부침입에 대한 보안 | 네트워크 |
네트워크 관리 | 네트워크 입, 출력 (요청 및 응답) 분산처리 관리 |
네트워크 |
장치 관리 | 네트워크 상 연결 된 장치를 제어 드라이버를 통한 장치 입/출력 |
네트워크, 키보드, 모니터, 마우스, 프린터 등 |
프로세스 관리 | 프로세스를 실행하며 메모리 적재 프로세스를 연산 처리 프로세스 동기화, 스케쥴 등 |
메모리, CPU |
메모리 관리 | 메모리 공간에 프로세스를 적재하기 위해 메모리 공간을 할당 메모리에 대해 다른 프로세스가 접근하지 못하도록 보호 효율적인 메모리 관리를 위해 가상 메모리 할당 (디스크 영역으로 확장) |
메모리, 디스크 |
파일 시스템 관리 | 파일 작성, 저장, 읽기 등 파일에 관련된 작업 | USB, 디스크, SSD 등 |
기타 관리 | 사용자 계정, 부팅 등 |
운영체제와 응용 프로그램의 차이
운영체제 | 응용 소프트 웨어 | |
목적 | HW / SW 자원 관리 | 사용자 요구 달성 |
기능 | HW / SW의 자원 관리와 사용자 관리 | SW 특성에 따른 기능 |
개발 언어 | C/C++, 어셈블리어 | 다양한 언어 |
실행 | 컴퓨터 부팅 시 메모리에 적재되어 종료시 까지 실행 됨. | 사용자의 명령에 따라 실행되거나 종료 |
자원에 대한 접근 권한 | 컴퓨터의 모든 자원에 대해 배타적 독점 | 컴퓨터 자원 사용시 OS에게 요청 |
1. OS는 컴퓨터의 모든 자원을 관리한다.
2. OS는 자원에 대해 독점(exclusive)적 권한을 가진다.
3. OS는 관리자 기능을 가진다.
4. OS는 시스템 소프트웨어이다.
'CS > 운영체제' 카테고리의 다른 글
6. 커널 (Kernal) (0) | 2024.04.21 |
---|---|
5. 운영체제의 역할 (1) | 2024.04.21 |
4. 시분할 다중프로그래밍(Time Sharing Multi-Programming) OS (0) | 2024.04.21 |
3. 다중 프로그래밍 (Multi-Processing) OS (1) | 2024.04.21 |
2. 운영체제의 발전 (0) | 2024.04.21 |