01. 역사를 통해 살펴본 OS의 기능
•
운영체제가 존재하지 않았던 옛날의 컴퓨터는 아무런 프로그램도 없는 상태에서 프로그래머가 모든 기능을 처리하는 프로그램을 처음부터 끝까지 작성해야 했었다.
•
이런 문제를 해결하기 위해 최초의 운영체제를 가지게 되었는데, 프로그램을 적재하고 실행하는 기능만 갖춘 모니터 프로그램이었다.
•
많은 프로그램들이 이처럼 프로그램과는 무관한 기능들을 공통적으로 가지고 있다는 사실을 알게 되었고 이런 하드웨어 제어 프로그램과 언어 프로세스 및 여러 유틸리티 등의 기능을 포함한 프로그램들이 발전되어 운영체제가 되었다.
02. 위대한 OS의 존재를 의식하자!
•
어플리케이션을 개발하는 프로그래머는 하드웨어가 아닌 OS의 기능을 이용하는 어플리케이션을 개발하고 있다는 것을 명심해야 한다.
•
프로그래머는 하드웨어에 대한 기본 지식을 갖추고는 있어야 하지만 OS가 있는 이상 하드웨어를 직접 제어하는 일은 거의 없기 때문이다.
•
운영체제가 하드웨어와 관련된 골치 아픈 작업들을 대신해 주고 있기 때문에 좀더 효율적으로 프로그램을 만들 수 있다는 사실을 염두에 두어야 한다. 그렇지 않는다면 문제가 발생했을때 해결방안을 찾기가 어렵다.
03. 시스템 호출과 고급 언어의 이식성을 알아보자!
•
일반적으로 운영체제의 하드웨어 제어 기능은 작은 함수들의 집합으로 제공된다. 이 함수들 및 함수를 호출하는 작업을 시스템 콜이라고 한다.
•
고급 언어는 소스 코드가 컴파일 될 때 그 함수에 해당하는 시스템 콜로 변환하는 작업을 수행하기 때문에 이식성이 있다.
•
고급 언어 중에는 직접 시스템 콜을 수행하는 기능을 가진 언어도 있는데 이런 식으로 작성된 어플리케이션은 이식성이 나쁘다.
04. OS와 고급 언어가 하드웨어를 간접 제어한다!
•
운영체제가 제공하는 시스템 콜 덕분에 프로그래머는 하드웨어를 직접 제어하는 소스 코드를 작성할 필요가 없다. 또한 고급 언어를 사용해서 하드웨어의 종류에 따른 차이점을 의식할 필요도 없다.
05. 윈도우의 일곱 가지 특징 제대로 분석하기
•
윈도우의 운영체제로서의 특징은 다음과 같다.
◦
32비트, 64비트 운영체제다. 데이터를 가장 효율적으로 처리할 수 있는 데이터의 길이를 의미한다.
◦
API라는 함수 세트로 시스템 콜을 제공한다. API는 어플리케이션을 만드는 프로그램과 운영체제를 연결하는 창구가 된다.
◦
GUI를 통해 사용하기 쉬운 사용자 인터페이스를 제공한다.
◦
WYSIWYG에 의한 프린터 출력이 가능하다.
◦
멀티태스킹을 지원한다. 윈도우는 시분할이라는 방법으로 멀티태스킹을 구현한다.
◦
네트워크 및 데이터베이스 기능을 제공한다.
◦
플러그 앤 플레이 기능으로 장치 드라이버를 자동으로 설정한다.