운영체제

운영체제 구조

으엉어엉 2024. 4. 26. 15:40
728x90

운영체제의 수행 과정

컴퓨터 시스템의 Memory : ROM 과 RAM

memory의 첫 부분은 ROM(비 휘발성) , 뒷 부분은 RAM(휘발성)

ROM의 시작 위치에 부트로더(boot Loader) 프로그램 저장.

 

전원이 켜지면 CPU(프로세서)는 메모리 첫 부분(ROM)의 내용을 읽어 수행하게 되는데, 부트로더를 수행하게 됨.

  • 전원이 켜지면 pc 레지스터 값이 0으로 초기화 됨
    • 메모리 0번지를 읽어 수행함. 즉 부트로더가 실행 됨
  • 전원이 켜지면 CPU 모드는 커널모드로 초기화 됨( 상태 레지스터의 모드 비트가 0으로 초기화 됨)
    • 부트로드는 커널 모드에서 실행됨
  • 0: 커널모드          1: 사용자 모드

 

부트로더가 하는 일

커널 모드

  • 시스템 초기화 및 테스트( 메모리, 기본 입출력 장치 등)
  • 운영체제(OS) 파일을 보조기억장치(하드디스크) 에서 읽어 들여 메모리(RAM)에 적재(load)하고 실행을 시작시킨다.
  • 시스템 초기화
  • 최초의 프로그램을 시작시킴(Unix경우 init 프로그램)

 

 

운영체제는 인터럽트에 의해 CPU제어를 받아서 수행됨(운영체제는 인터럽트에 의해서만 구동되는 프로그램)->인터럽트 벡터 테이블을 초기화 해야함

  • 타이머 인터럽트: 주기적으로 인터럽트를 발생시킴
  • 응용 프로그램: 시스템 호출을 수행
  • I/O 장치: 입출력을 마치면 인터럽트를 발생시킴

인터럽트에 의해 운영체제가 수행될 때, CPU모드는 자동으로 커널모드가 됨

운영체제는 항상 커널모드에서 수행되며, 인터럽트 서비스 루틴을 수행 

  • CPU레지스터들의 값을 저장한다
  • 인터럽트를 한다
  • 저장한 CPU 레지스터값들을 복원하여 인터럽트 발생 직전으로 CPU제어를 넘긴다.

 

왜 운영체제는 항상 커널모드에서 수행이 될까?

보안과 시스템 안정성을 유지하기 위해서이다.
부팅할 때 커널모드에서 시작하므로 운영체제는 커널 모드에서 수행되며 이후 인터럽트가 발생하면 하드웨어적으로 CPU모드가 커널 모드로 설정되어 운영체제가 수행되기 때문에

 

 

 

CPU모드 : OS가 자신을 보호하고 시스템 구성요소를 보호할 수 있게 함

  • 사용자모드와 커널모드
  • 특정 명령어는 커널모드에서만 실행

시스템 호출(System call)


시스템 호출: 운영체제가 응용 프로그램에게 제공하는 시스템 함수

응용 프로그램은 마치 함수를 호출하듯 호출하여 사용할 수 있다.

응용 프로그램은 직접 하드웨어를 제어하거나 파일(하드디스크에 있다)을 읽기/쓰기를 할 수 없다.

 

 

 

운영체제에 의해 제공되는 일반적인 시스템 호출들

 

  • 프로세스 제어
    • 종료(terminate), 적재(load), 실행(execute)
    • 프로세스 속성 획득(get attribute), 속성 설정(set attribute)
    • 지정된 시간만큼 대기(wait time)
    • 사건이 일어나기를 대기(wait event)
    • 사건이 일어났음을 신호(signal event)
    • 기억장치 할당 및 해제
  • 파일 조작
    • 생성, 삭제, 개방, 폐쇄
    • 읽기, 쓰기, 재배치
    • 속성 획득 및 설정
  • 장치 관리
    • 장치 요구(request), 해제(release)
    • 읽기, 쓰기, 재배치
    • 속성 획득 및 설정
    • 장치의 논리적 부착 또는 제거
  • 정보 유지관리
    • 시간과 날짜의 설정과 획득
    • 시스템 자료의 설정과 획득
    • 프로세스, 파일, 장치 속성의 설정과 획득
  • 통신
    • 통신연결의 생성과 제거
    • 메시지 송수신
    • 상태 정보 전달

사용자 인터페이스

사용자 인터페이스 : CLI

  • 키보드를 사용하여 직접 명령어를 입력
  • 일반적으로 별도의 프로그램으로 구현되어 수행됨

 

사용자 인터페이스 : GUI

  • 마우스, 키보드 등을 사용
  • 파일,프로그램, 행위 등을 아이콘으로 나타냄
  • 인터페이서 객체에 대한 다양한 마우스 버튼은 여러가지 행위로 수행한다

대부분의 운영체제는 CLI + GUI 제공

 

운영체제의 요구사항 : 사용자 목적(User goals)과 시스템 목적(System goals)

  • 사용자 목적: 운영체제는 사용이 쉽고 배우기 쉽고 신뢰성이 있어야하고 안전해야하고 빠르게 실행되어야한다.
  • 시스템 목적: 운영체제는 설계, 구현, 관리가 쉬워야하고 융통성, 신뢰성, 효율성이 있어야한다.
단일 커널 구조
운영체제의 모든 기능한 프로그램으로 구현됨

Unix
파일 시스템, CPU스케쥴링, 메모리 관리가 하나의 프로그램으로 구현

문제점:
1. 보안
2.스케일링 제한
3. 유지보수 어려움 

 

 

 

마이크로 커널

중요한 기능 : 커널로 구현

나머지 기능: 사용자 모듈인 서버로 구현 -> 응용프로그램처럼 실행

커널과 사용자 모듈 서버는 메시지를 사용하여 통신

 

장점

  • 확장이 쉽다 = 새로운 하드웨어에 이식이 쉽다.
  • 커널모드에서 실행되는 코드가 적어짐->신뢰성이 좋아진다

 

문제점

  • 사용자 공간과 커널 공간의 잦은 통신이 필요하기 때문에 성능이 떨어질 수 있다.

 

 

 

 

모듈을 지원하는 구조

  • 운영체제가 커널과 모듈로 분리되는 구조
    • 커널(주요 기능)은 프로세스, 메모리 관리 등 핵심 서비스만 구현
    • 하드웨어 드라이버, 파일 시스템등 추가 기능은 모듈(커널안에 동적으로 집어넣음)로 구현
  • 모듈은 부팅할 때 또는 컴퓨터 사용 중에 커널에 링크할 수 있음
  • 컴퓨터 사용중에 모듈을 커널 메모리에서 제거할 수 있음
  • 각 모듈은 잘 정의된 인터페이스를 사용해 커널과 통신

EX) Linux, Mac OS 등

 

 

728x90

'운영체제' 카테고리의 다른 글

CPU 스케쥴  (1) 2024.04.26
쓰레드  (1) 2024.04.26
프로세스  (1) 2024.04.26
하드웨어 개요  (0) 2024.04.26
운영체제 개요  (0) 2024.04.26