728x90
운영체제 역할
프로그램이 실행되는 환경을 제공해 준다.
운영체제가 가지는 목표
- 제공하는 서비스
- 사용자와 프로그래머에게 제공하는 인터페이스
- 시스템 구성요소와 그들의 상호연결
운영체제 구조
운영체제 서비스
- 사용자 인터페이스 제공
- 프로그램 실행
- 입출력 연산
- 파일 시스템 조작
- 통신
- 오류탐지
- 자원할당
- 기록작성
- 보호와 보안
시스템콜
운영체제에 의해 사용가능한 서비스에 대한 인터페이스를 제공
시스템 콜을 부르는 것 보다 API에 따라 프로그래밍 하는걸 선호하는 이유
- 프로그램 호환성
: 같은 API를 지원하는 어느 시스템에서건 컴파일 되고 실행될 수 있다. - 시스템 콜은 자세한 명세가 필요하고 프로그래머가 작업하기 어렵다.
RTE: 실행시간 환경
- 시스템 콜에 대한 연결고리를 하는 시스템 call Interface를 제공
- 함수의 호출을 가로채어 필요한 운영체제 시스템 콜을 부른다.
- 운영체제 인터페이스에 대한 자세한 부분은 API에 의해 프로그래머로 부터 숨겨지고 RTE에 의해 관리된다.
시스템 콜의 유형
- 프로세스 제어
- 파일조작
- 장치 조작
- 정보유지 보수
- 통신
- 보호
링커와 로더
- 프로그램은 디스크에 이진 실행 파일로 존재한다.
- CPU에서 실행하려면 프로그램을 메모리에 가져와 프로세스 형태로 배치해야 한다.
- [소스 프로그램] --컴파일러--> [오브젝트 파일] --링커--> [실행파일] --로더--> [메모리의 프로그램]
응용 프로그램이 운영체제 마다 다른 이유
- 각 운영체제는 고유한 시스템 집합을 제공한다.
- 시스템 콜은 응용 프로그램이 사용할 수 있도록 하는 서비스 집합의 일부이다.
- 시스템 콜이 같더라도 다른 OS에서 실행하기 어렵다.
그래도 실행되게 하려면
- 인터프리터 언어
- 실행 중인 응용프로그램을 포함하고 있는 가상 머신
- 컴파일러가 기기 및 운영체제 고유의 이진 파일을 생성하는 표준언어 또는 API를 사용했을 경우
운영체제 설계 목표
- 사용자 목적
- 시스템 목적
기법과 정책의 분리
- 타이머 구조는 CPU보호를 위한 기법
- 타이머가 얼마나 오랫동안 설정할 지는 정책적 결정
운영체제 구조 접근 방식
- 모놀리식 구조
- 계층적 구조
- 마이크로 커널
- 모듈
- 하이브리드
모놀리식 방식
- 구조가 아예 없는 것
- 커널의 모든 기능을 단일 주소 공간에서 실행하는 단일 정적 이진 파일
- 장점) 명백한 단순성, 시스템 인터페이스는 오버헤드가 거의 없다. 커널내 통신 속도가 빠르다.
- 단점) 구현 및 확장의 어려움
계층적 방식
- 느슨하게 결합된 시스템을 설계할 수 있다.
- 시스템 기능이 특정 기능 및 한정된 기능을 가진 개별적이고 작은 구성요소로 나뉜다.
- 장점) 구현과 디버깅이 간단하다.
- 단점) 각 계층의 기능을 적절히 정의하는 게 어렵다. 여러 계층을 통과하며 오버헤드가 생길 수 있다.
마이크로 커널 방식
- 모든 중요치 않은 구성요소를 커널로 부터 제거하고 그들을 별도의 주소공간에 존재하는 사용자 수순 프로그램으로 구현하여 운영체제를 구성한다.
모듈 방식
- 적제 가능 커널 모듈
- 부팅이나 실행중에 부가적인 서비스들을 모듈을 통하여 링크할 수 있다.
하이브리드 방식
- 다양한 구조를 결합하여 성능 보안 및 편리성 문제를 해결하려는 혼용 구조
728x90
'Computer Science > Operating System' 카테고리의 다른 글
🚗Process (0) | 2020.06.16 |
---|---|
🥓Thread (0) | 2020.06.16 |
🚀CPU 스케줄링 알고리즘 (0) | 2020.06.16 |
OS #1 - Operating System Introduction. (0) | 2020.04.20 |
댓글