프로그래밍

운영체제론

roquen4145 2017. 3. 6.

운영체제론 과목 요약 게시물입니다.


------------------------------------------------------------------------------------------------------------------------------------------------------------------------


운영체제 : 하드웨어와 소프트웨어 리소스를 관리하면서 컴퓨터 프로그램에 일반적인 서비스를 제공하는 소프트웨어


위키백과 링크 : https://en.wikipedia.org/wiki/Operating_system


운영체제론 과목의 목적 : 운영체제를 이해함으로써 어플리케이션의 성능을 최대한 발휘할 수 있는 방식으로 소프트웨어 개발을 할 수 있다.


앞으로 배울 운영체제 내용들

  • Process Subsystem
  • File Subsystem
  • Memory Subsystem


------------------------------------------------------------------------------------------------------------------------------------------------------------------------


□ 운영체제는 호스트의 역할을 수행한다. 게스트는 유저와 애플리케이션이며 이들에게 서비스를 제공한다.


□ 운영체제는 애플리케이션과 하드웨어의 중간자 역할을 한다.

   애플리케이션이 운영체제에 보내는 신호는 System Call이라고 하며 하드웨어에서 운영체제에 보내는 신호는 Interrupt라고 한다.

   ( System Call도 일종의 Interrupt )


□ 운영체제의 기능

   - 프로세스 관리                    : 프로세스 생성, 삭제, 순서관리

   - 프로세서 관리                    : 프로세서가 처리할 프로세스 스케줄링, 할당

   - 메모리 관리                      : 메모리 할당

   - 파일 관리                         : Mapping of files onto secondary storage

   - I/O 관리                          : Buffer Pool

   - 2차 저장공간 관리             : 디스크 관리

   - 기타 (네트워킹, 보안 등)     : OS는 TCP/IP 영역에 관여


□ 운영체제의 분류

  - 동시 사용자의 숫자에 따른 분류      : Single-User System // Multi-User System 

                                                    가장 큰 차이점으로 Protection Mechanism이 있다.

  - 동시 프로세스의 숫자에 따른 분류   : Single-tasking System // Multi-tasking System

                                                    가장 큰 차이점으로 Concurrency Control 과 Synchronization이 있다.

  - 업무 수행 메카니즘에 따른 분류      : Batch Systems, Interactive Systems, Personal Computing, Parallel/Distributed Computing , Real-time System,                                                          Embedded system, Mobile Computing, Cloud Computing, Ubiquitous Computing


□ 운영체제의 구조

    운영체제는 크게 커널과 유틸리티로 구성되어 있다

    커널은 메모리에 상주하는 운영체제의 부분으로 컴퓨터 동작중에 항상 실행중에 있다

    유틸리티는 저장공간에 있는 운영체제의 부분으로 필요할 때만 불러서 사용한다.

    * 커널은 부팅시 ROM에 있는 Bootstrap Loader에 의해서 불러진다.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

□ 운영체제의 두가지 모드

    운영체제에는 시스템을 보호하기 위해서 두가지 모드가 존재한다.

    사용자의 어플리케이션을 실행하는 User Mode와 인터럽트나 시스템 콜이 올 때만 동작하는 Kernel Mode가 있다.

    평소에는 운영체제가 User Mode로 동작하고 있다가 Trap ( or Exception )이 오면 Kernel Mode로 바뀌게 된다

    Trap ( or Exception )이 발생하는 경우는 프로그램 오류 ( stack overflow, null 포인트 참조, 잘못된 연산, 잘못된 주소참조 )가 일어났을 때와 Privileged Instruction을 실행할 때이다.


□ Privileged Instruction은 운영체제가 사용하는 명령어들로 커널모드에서만 실행되며 어플리케이션은 System Call Function을 호출하고 System Call Function이 대신 Privileged Instruction을 실행하는 식으로 계층구조가 형성되어있다. 


□ System Call 함수는 링킹하기 전에 라이브러리에 모두 다시 생성되어 링킹과정에 묶인다.

    System Call 함수는 Process Control, File Management, Device Management, Information Management, Communications, Etc의 기능을 하는 함수들이다.

□ 가상화

    가상화 방법에는 두가지 방법이 있다. 하나는 하드웨어 가상화이며 다른 하나는 운영체제 가상화이다

   하드웨어 가상화인 경우 하드웨어 위에 Virtualization Layer를 생성해서 하드웨어 리소스 접근을 통제하고 그 위에 가상 CPU, Memory, NIC, Disk 등이 여려 개 있으며 각각 가상 하드웨어 위에 운영체제가 하나씩있고 그 운영체제가 어플리케이션을 실행하는 구조를 가진다.

 운영체제 가상화는 서버 가상화 방법으로 운영체제의 커널이 여러 개의 분리된 user-space instance를 만들도록 하는 것이다. 이러한 instance들은 container라고 불리거나 virtualization engine, jails 등으로 불린다.

  가상화의 종류에는 반가상화, 전가상화, 그리고 하이브리드 가상화가 있다. 반가상화는 Guest OS의 커널을 수정해서 Function Call을 알맞게 VMM(Virtual Machine Manager)에게 전달하도록 한다. 전가상화는 Guest OS를 수정하지 않고 VMM이 Trap( or Exception )을 알아서 잘 처리하도록 만드는 것이다. 하이브리드는 두 개 섞은거

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

'프로그래밍' 카테고리의 다른 글

R 프로그래밍 데이터프레임 만들기  (0) 2017.03.30
데이터마이닝  (0) 2017.03.07
컴퓨터구조  (0) 2017.03.06
인공지능  (0) 2017.03.02
데이터베이스  (0) 2017.03.02

댓글