위의 사이트를 참고하면서 작성한 내용입니다.
시스템의 자원과 동작을 관리하는 소프트웨어
운영체제는 큰 틀로 나누면 아래와 같다.
#프로세스 관리
운영체제에서 작동하는 응용 프로그램을 관리하는 기능
프로세서(CPU)관리로도 볼 수 있음.
현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리함.#저장장치 관리
1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능
- 1차 저장장치
- 프로세스에 할당하는 메모리 영역의 할당과 해제
- 각 메모리 영역 간의 침범 방지
- 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
- 2차 저장장치
- HDD, NAND Flash Memory 등
- 파일 형식의 데이터 저장
- 이런 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
- FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중
#네트워킹
TCP/IP 기반의 인터넷에 연결하거나, 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야 함.
현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원함.
이처럼 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치해서, 하드웨어를 운영 및 관리하고 명령어를 제어하여 응용 프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리해야함.
#사용자 관리
운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경을 제공해야함.
예를 들어, 가족들이 각자의 계정을 만들어 PC를 사용하는 경우.
-> 각 계정을 관리할 수 있는 기능 필요
-> 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 해야 함.
-> 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것
#디바이스 드라이버
운영체제는 시스템의 자원, 하드웨어를 관리.
시스템에는 여러 하드웨어가 붙어있고, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 함.
즉, 운영체제 안에 하드웨어를 추상화해주는 계층 필요.
-> 이 계층이 바로 디바이스 드라이버