////
Search
Duplicate
🎈

Chapter 09. OS와 어플리케이션의 관계

01. 역사를 통해 살펴본 OS의 기능

운영체제가 존재하지 않았던 옛날의 컴퓨터는 아무런 프로그램도 없는 상태에서 프로그래머가 모든 기능을 처리하는 프로그램을 처음부터 끝까지 작성해야 했었다.
이런 문제를 해결하기 위해 최초의 운영체제를 가지게 되었는데, 프로그램을 적재하고 실행하는 기능만 갖춘 모니터 프로그램이었다.
많은 프로그램들이 이처럼 프로그램과는 무관한 기능들을 공통적으로 가지고 있다는 사실을 알게 되었고 이런 하드웨어 제어 프로그램과 언어 프로세스 및 여러 유틸리티 등의 기능을 포함한 프로그램들이 발전되어 운영체제가 되었다.

02. 위대한 OS의 존재를 의식하자!

어플리케이션을 개발하는 프로그래머는 하드웨어가 아닌 OS의 기능을 이용하는 어플리케이션을 개발하고 있다는 것을 명심해야 한다.
프로그래머는 하드웨어에 대한 기본 지식을 갖추고는 있어야 하지만 OS가 있는 이상 하드웨어를 직접 제어하는 일은 거의 없기 때문이다.
운영체제가 하드웨어와 관련된 골치 아픈 작업들을 대신해 주고 있기 때문에 좀더 효율적으로 프로그램을 만들 수 있다는 사실을 염두에 두어야 한다. 그렇지 않는다면 문제가 발생했을때 해결방안을 찾기가 어렵다.

03. 시스템 호출과 고급 언어의 이식성을 알아보자!

일반적으로 운영체제의 하드웨어 제어 기능은 작은 함수들의 집합으로 제공된다. 이 함수들 및 함수를 호출하는 작업을 시스템 콜이라고 한다.
고급 언어는 소스 코드가 컴파일 될 때 그 함수에 해당하는 시스템 콜로 변환하는 작업을 수행하기 때문에 이식성이 있다.
고급 언어 중에는 직접 시스템 콜을 수행하는 기능을 가진 언어도 있는데 이런 식으로 작성된 어플리케이션은 이식성이 나쁘다.

04. OS와 고급 언어가 하드웨어를 간접 제어한다!

운영체제가 제공하는 시스템 콜 덕분에 프로그래머는 하드웨어를 직접 제어하는 소스 코드를 작성할 필요가 없다. 또한 고급 언어를 사용해서 하드웨어의 종류에 따른 차이점을 의식할 필요도 없다.

05. 윈도우의 일곱 가지 특징 제대로 분석하기

윈도우의 운영체제로서의 특징은 다음과 같다.
32비트, 64비트 운영체제다. 데이터를 가장 효율적으로 처리할 수 있는 데이터의 길이를 의미한다.
API라는 함수 세트로 시스템 콜을 제공한다. API는 어플리케이션을 만드는 프로그램과 운영체제를 연결하는 창구가 된다.
GUI를 통해 사용하기 쉬운 사용자 인터페이스를 제공한다.
WYSIWYG에 의한 프린터 출력이 가능하다.
멀티태스킹을 지원한다. 윈도우는 시분할이라는 방법으로 멀티태스킹을 구현한다.
네트워크 및 데이터베이스 기능을 제공한다.
플러그 앤 플레이 기능으로 장치 드라이버를 자동으로 설정한다.