더북(TheBook)

예를 들어 프로그램이 디스크에 데이터를 기록해야 한다면, 프로그램은 이 작업을 운영체제에 맡긴다. 운영체제는 디스크 컨트롤러를 통해 디스크에 적합한 신호를 보낸다. 프로그램은 디스크를 사용하기 위해 디스크의 종류나 사용법을 따로 알 필요가 없다. 운영체제가 필요한 세부 사항을 도맡아 처리해주고, 프로그램이 비정상적으로 사용되더라도 하드웨어와 자원을 보호해주기 때문이다. 프로그램이 하드웨어와 직접 통신하는 대신 운영체제의 기능을 사용하는 과정에서 오버헤드가 생기는데, 이 오버헤드가 치명적인 경우도 있지만 애플리케이션에서 시스템 콜을 사용하지 않아도 된다는 점은 유리하다. 다음 장에서 구체적인 예를 살펴볼 것이다.

운영체제로 프로그램을 실행하는 첫 단계는 실행 파일과 정적 데이터(초기 변수 등)를 메모리로 읽어 들이는 것이다. 그다음 시작점(main())부터 프로그램을 실행한다. 운영체제가 main()으로 넘어가면 프로세서의 제어권이 프로그램으로 이전된다. 이때부터는 운영체제의 보호 아래 프로그램이 실행된다.

현대적인 컴퓨터는 모두 이러한 방식을 따른다. 세부 과정은 이보다는 더 복잡하지만, 기본 구성 요소는 같다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.