컴퓨터는 하드웨어와 소프트웨어의 결합된 형태라고 언급했었습니다. 이 하드웨어에게 명령을 하는 주체가 바로 운영체제라고 할 수 있겠습니다.
정확히는 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어입니다.
대표적으로 애플의 MacOS와 마이크로소프트의 Windows가 있습니다.
프로세서, 메모리, 입출력장치 등의 리소스들을 사용할 수 있게 만들어줍니다. 그리고 이를 추상화하여 파일 시스템 등의 서비스를 제공합니다. 또한, 여러 응용 프로그램을 실행하는 동안 리소스를 효율적으로 관리하기 위해 스케줄링 기능을 제공합니다. 이로 인해 여러 응용 프로그램이 동시에 수행되는 것같은 효과를 냅니다.
운영체제가 있어야만 응용 프로그램이 실행 될 수 있습니다. 응용 프로그램은 컴퓨터를 이용해 다양한 작업을 하는 것이 목적이고 위에서 언급하였듯이 운영체제는 명령을 하는 주체로서 하드웨어를 구성하는 여러 장치의 시스템 리소스를 관리합니다.
모든 앱(응용 프로그램)이 시스템의 리소스에 임의적인 접근을 허용한다면, 해킹에 굉장히 취약한 상태가 됩니다. 이를 예방하기 위해 앱은 권한에 대한 관리가 필요합니다. 여러 사람이 하나의 디바이스를 사용하는 경우엔 사용자를 관리하는 일도 수행해야합니다.
앱이 운영체제를 통해 컴퓨터에게 명령을 하기 위해서는 컴퓨터를 조작할 수 있는 권한을 운영체제로부터 부여받아야합니다.
앱이 운영체제와 상호작용하기 위해서는 운영체제가 앱을 위해 인터페이스 API를 제공해야 합니다. 이때 운영체제로부터 다양한 함수를 제공하는 것을 시스템 콜(System Call) 이라고 부릅니다.
프로세스와 스레드 내용 추가