OS and General Knowledge - 2
일반적인 OS의 작동 방식
OS는 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 하고 모든 종류의 프로그램 실행을 제어한다.
운영 체제의 중요한 기능은 아래와 같다.
자원관리 기능
- 메모리 관리
- 프로세서 관리
- 장치 관리
- 파일 관리
메모리 관리
메모리는 메인 메모리와 보조기억장치로 구분하며 메모리 관리는 메인 메모리의 관리를 의미한다.
메인 메모리는 CPU에서 직접 액세스 할 수 있는 빠른 스토리지를 제공하며 프로그램이 실행되기 위해서는 반드시 메인 메로리에 있어야 한다. 메모리 관리를 위해서 부분별로 메모리의 사용 여부를 추적하고 멀티프로그래밍에서는 어느 프로세스가 언제, 얼마나 확보를 해야 되는지 결정한다. 또한 프로세스가 요청할 때 메모리를 할당하기도 하며 더 이상 필요하지 않거나 종료된 경우 메모리 할당을 해제한다.
프로세서 관리
멀티프로그래밍 환경에서 OS는 어느 프로세스가 언제 얼마나 많은 시간 동안 프로세서를 가져오는지 결정하며 이 기능을 프로세스 스케줄링이라고 한다. 프로세서와 프로세스 상태를 추적(트래픽 컨트롤러)하며 프로세서를 프로세스에 할당한다. 프로세스가 더 이상 필요하지 않을 때 프로세서 할당을 해제한다.
장치 관리
운영 체제는 드라이버를 동해 장치를 관리하는데 모든 장치를 추적하는 I/O 컨트롤러가 있으며 어떤 프로세스가 장치를 언제 얼마만큼의 시간 동안 가져오는지 결정하고 할당을 해제하기도 한다.
파일 관리
파일 시스템은 일반적으로 쉬운 탐색 및 사용을 위해 디렉토리로 구성되며 운영 체제는 파일 관리를 위해서 정보, 위치, 용도, 상태 등을 추적하며(파일 시스템) 리소스 할당, 해제 등을 관리한다.
기타 기능
- 보안 - 암호화 및 유사한 기타 기술을 사용하여 프로그램 및 데이터에 대한 무단 액세스 방지
- 시스템 성능 제어 - 서비스 요청과 시스템 응답 사이의 지연을 기록
- 작업 관리 - 다양한 작업과 사용자가 사용하는 시간과 리소스를 추적
- 오류 감지 지원 - 덤프, 추적, 오류 메시지, 기타 디버깅 및 오류 감지 지원
- 명령 해석기와 시스템 관리 - 컴퓨터 시스템의 다양한 사용자에 대한 컴파일러, 인터프리터, 어셈블러 및 기타 소프트웨어의 조정 및 할당
운영체제는 정말 깊은 학문으로 웹 프로그래밍만 해왔던 필자로서는 겉핥기밖에 할 수 없는 학문이다. 하지만 막연히 메모리 관리라던가 멀티프로세싱, 스케줄링 등을 하려면 꼭 깊이 공부해야 될 학문 같다.
[출처] https://www.tutorialspoint.com/operating_system/os_overview.htm