1. 운영체제
컴퓨터의 각종 자원을 보다 효율적으로 관리하고 운영하는 시스템 소프트웨어
- 하드웨어와 사용자 간의 중재자 역할을 수행하는 시스템 프로그램
운영체제의 계층구조
운영체제를 계층적인 상호관계를 가지는 프로그램 모듈들의 집합으로 보는것
- 1계층 : 동기화 및 프로세서 스케줄링을 위한 프로세서 관리
- 2계층 : 기억장치의 할당 및 회수기능을 실행하는 기억장치 관리
- 3계층 : 프로세스의 생성, 제거, 프로세스간의 메시지 전다르, 프로세스의 시작과 정지등의 일 담당
- 4계층 : 주변장치의 상태를 파악, 입출력장치의 스케줄링담당
- 5계층 : 파일의 생성과 소멸, 파일의 오픈과 클로그, 파일의 유지및 관리 담당
2. 운영체제 분류
제어프로그램
- 감시프로그램 : 시스템의 모든 동작 생태 관리 감독
- 데이터 관리 프로그램 : 주기억장치와 보조기억장치 사이의 자료전송, 파일의 조작 처리 등
- 작업 제어 프로그램 : 작업의 연속처리를 위한 스케줄 및 시스템 자원할당 담당
처리프로그램
- 언어번역프로그램 : 프로그램을 입력받아 기계어로 번역하는 프로그램 (컴파일러, 어셈브러, 인터프리터)
- 서비스 프로그램 : 사용빈도가 높은 프로그램들을 시스템 제공자가 미리 작성하여 사용자에게 제공
- 시스템 서비스 프로그램 : linkage Editor, Librarian Program 등
- 사용자 서비스 프로그램 : Sort/Merge program, Utility Program 등
언어번역프로그램
- 어셈블러 : 어셈블리어로 작성된 원시 프로그램을 바이너리 코드로 번역
- 비트패턴으로 변환
- 컴파일러 : 고급언어로 작성된 원시프로그램을 기계어나 어셈블리어로 된 목적 프로그램으로 번역
- preprocessor : 실제 컴파일이 시작되기 전에 컴파일러에게 정보를 사전처리하도록 지시
컴파일러 vs 인터프리터
| 기법 | 컴파일러 | 인터프리터 |
|---|
| 정의 | 고급언어 → 목적프로그램으로 번역한 후 링킹 작업을 통해 실행 파일로 | 고급언어 → 한줄단위로 번역, 번역과 동시에 프로그램을 한줄단위로 즉시 실행 |
| 특징 | 번역시, 기억장소가 확정되는 정적 자료구조 방식 | 실행시, 자료구조가 변하는 동적 자료구조 방식 |
| 실행속도 | 빠름 | 느림 |
| 번역속도 | 느림 | 빠름 |
4. 시스템 서비스 프로그램
링커 (Linker)
- 서브프로그램과 주프로그램을 연결해주는 컴퓨터 시스템 프로그램
- 다른 곳에서 작성된 프로그램 루틴이나 컴파일 또는 어셈블된 루틴들을 모아서 실행가능한 하나의 루틴으로 연결
로더 (Loader)
- 컴퓨터 내부로 정보를 읽어오거나 외부 기억장치로부터 정보들을 주기억장치 내에 적재
- 기능
- 주기억장치 할당 : 프로그램이 들어갈 기억장소 배정
- 링킹 : 외부 프로그램 연결
- 재배치 : 실제 기억장소에 대응되도록 프로그램 주소 재배치 (상대주소를 절대주소로 )
- 로딩 : 프로그램과 데이터를 메모리에 적재