상세 컨텐츠

본문 제목

2.6 운영체제의 설계와 구현

Computer Science/OS Concepts

by RACC8N 2020. 4. 4. 20:35

본문

설계 목표(goal)과 명세(specification)정의

- 하드웨어와 시스템 유형(batch, time shared, single user, multi-user, distributed, real tiem, general purpose)의 선택에 영향 받음

 

요구조건 지정 (설계 목표)

- 사용자 목표 - 사용하기 쉽고, 배우기 쉽고, 신뢰성 있고, 안전하고, 빠름

- 시스템 목표 - 설계, 구현, 유지 보수가 쉽고, 유연성, 신뢰성, 무오류, 효율적이여야 함

- 요구 조건은 애매하고 다양하게 해석될 수 있으며, 일반적으로 합의된 사항은 없음

 

운영체제의 설계 및 구현

- 모든 요구 조건을 해결하는 완전한 해결책은 없지만, 성공이 입증된 접근법은 있음

- 소프트웨어 공학에서 개발된 일반적인 원칙을 사용

- 내부 구조는 운영체제마다 다를 수 있음

 

기법(Mechanism)과 정책(Policy)

 

Mechanism과 Policy - 둘을 분리하는 것이 중요한 원칙임

- Mechanism : 어떻게 할 것인가? (How)

- Policy : 무엇을 할 것인가? (What)

EX) CPU 보호 방법

- Mechanism : CPU 보호를 위하여 타이머 구조를 사용 -> 바뀌지 않는 것

- Policy : 특정 사용자를 위한 타이머 양을 결정하는 것 -> 변경 가능

 

Mechanism과 Policy의 분리는 flexibility를 위해서 중요함

- policy는 시간이 지남에 따라서 변경될 수 있음

- mechanism은 정책 변경에 민감하지 않는 일반적인 것이 바람직함

- 시스템 매개 변수의 재정의에 의해서 policy 변경이 이루어지도록 함

   > UNIX 초기 : 시분할 스케줄러

   > Solaris 최근 버전 : loadable table에 의해 제어되는 스케줄러

- microkernel 기반 OS - mechanism과 policy의 극단적 분리

- Mac OS와 Windows - mechanism과 policy를 함께 작성됨 (시스템 내에 코드화 되어있음)

  > interface가 kernel과 system library에 포함 -> global look and feel(전역적 외관과 느낌) 

 

시스템 구현 

운영체제의 구현 

- 초기의 운영체제는 어셈블리 언어로 작성됨

- 현재의 대부분의 운영체제는 고급 언어로 작성됨

- 커널의 저수준 코드는 여전히 어셈블리 언어로 작성됨

  > 장치 드라이버, 레지스터 상태 저장 및 복구 등

system programs의 구현 

- C, C++, PERR,PYTHON 로 작성됨

 

고급 언어 구현의 장단점

장점 :

- 코드를 빠르게 작성

- 간결한 코드

- 이해와 디버깅이 쉬움

- 이식하기 훨씬 쉬움

 

주장되는 단점 : 

- 속도가 느려짐, 소요 메모리가 증가됨 -> 현재는 문제가 되지 않음

 

문제가 안 되는 이유 : 

- 현대의 최적화 컴파일러는 일반적인 어셈블리 언어 프로그래머보다 훨씬 우수한 코드를 생성할 수 있음

- OS의 주된 성능 향상은 더 좋은 자료구조와 알고리즘에 의한 것임.

'Computer Science > OS Concepts' 카테고리의 다른 글

2.8 운영체제 디버깅  (0) 2020.04.17
2.7 운영체제 구조  (0) 2020.04.17
2.5 시스템 프로그램  (0) 2020.04.04
2.4 시스템 호출의 유형  (0) 2020.04.04
2.3 시스템 호출(system call)  (0) 2020.04.04

관련글 더보기

댓글 영역