본문 바로가기

컴퓨터과학/운영체제

운영체제 Day1

운영체제의 개요 

컴퓨터 시스템의 구성

하드웨어 / 소프트웨어(응용 소프트웨어 / 시스템 소프트웨어 / 펌웨어

펌웨어 : 하드웨어 상에 프로그램을 미리 심어두는 것 

 

응용 소프트웨어 : 엑셀, 한글 등 

시스템 소프트웨어 : 컴파일러, 인터프리터, 운영체제(윈도우, 리눅스 등)  

하드웨어 : CPU , 메모리 , 저장장치 , 입출력장치, 네트워크 장치 등 

 

운영체제란? 

컴퓨터에 하드웨어 자원을 관리하고

컴퓨터 프로그램이 동작하기 위한 서비스를 제공하는 시스템 소프트웨어

 

운영체제의 역할

1. 컴퓨터 시스템의 운영 (효율)

  • 컴퓨터 시스템의 자원을 제어 및 관리 (효율적인 관리) 
  • 응용프로그램들의 실행을 도와주는 소프트웨어 

 

2. 사용자 지원 

  • 사용자의 명령을 해석하여 실행 
  • 사용자와 하드웨어 사이의 매개체 역할을 수행

컴퓨터 시스템과 운영체제 

운영체제가 없던 초기의 컴퓨터 시스템

응용프로그램이 하드웨어를 직접 다루면서 작동했다.

 > 응용 프로그램 개발자는 하드웨어 제어 방법을 잘 알아야했다. 

여러 응용 프로그램이 하드웨어를 공유하게 되면, 자원 분할이 어렵다

> 같은 자원을 활용하는 응용프로그램일 경우에 문제가 생긴다. 

운영체제가 하드웨어와 응용 프로그램 사이에 위치하는 시스템 

응용 프로그램은 운영체제를 통해서만 하드웨어를 이용한다. 

사용자 > 응용 프로그램 > 운영체제 > 하드웨어 

 

CPU의 동작 모드 

슈퍼바이저 모드(커널 모드) 

운영체제의 커널이 동작되는 모드 

하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 있는 모드 

보호 모드(사용자 모드)

응용 프로그램이 동작 모드 

하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드 

시스템 호출 

응용 프로그램이 운영체제에게 서비스를 요청하는 매커니즘 (보호모드 > 슈퍼바이저)

시스템호출 > 보호모드에서 슈퍼바이저 모드로 변경 > 커널 동작 > 하드웨어 제어

운영체제 내에서 사용할 수 있는 특별한 서브루틴

 

커널 ( = 운영체제 )

운영체제의 핵심요소 

응용프로그램과 하드웨어의 사이에서 가교 역할을 해준다. 

구성방식 : 일체형 커널, 마이크로 커널 

 

일체형 커널 (안정성)

운영체제에 필요한 모든 서비스가 커널 내에 포함되어 있다. 

장점 : 

커널 내부의 요소들이 서로 효율적으로 상호작용이 가능하다. 

단점 : 

하나의 요소에 오류가 발생하면, 전체 오류가 발생할 수 있다. 

예 : unix , linux 

 

마이크로 커널 (확장성)

운영체제의 대부분의 요소들이 커널 외부로 분리되어 있다. 

커널 내에는 메모리 관리, 멀티태스킹, 프로세스 간 통신 등 최소한의 요소만 남겨져있다. 

장점: 

새로운 서비스를 추가해서 운영체제 확장하기 용이하다. 

유지보수가 용이하고 안정성 우수 

단점: 

커널 외부 요소들 사이는 IPC를 통해야만 하므로 성능 저하가 발생한다. (시간이 지체됨)

 

운영체제의 구성 

컴퓨터 시스템의 자원의 성격에 따라 구분 

프로세스 관리자 

  • 프로세스를 생성, 삭제 , CPU 할당을 위한 스케줄 설정 
    • 프로그램 파일이 메모리 상에 올라와 있는 것 : 프로세스 (실행중인 프로그램)
    • 스케줄링 : 프로세스들의 순서를 관리하는 것 
  • 프로세스의 상태를 관리하며 상태 전이를 처리한다

메모리 관리자 

  • 메모리(주기억장치) 공간에 대한 요구가 있으면 체크 
  • 메모리 할당 및 회수 
  • 메모리 공간 보호 (프로세스들이나 운영체제들의 메모리가 겹치지않게)

장치관리자 

  • 컴퓨터 시스템의 모든 장치를 관리(모니터, 프린터 등) (드라이브를 이용)
  • 시스템의 장치를 할당, 작동 시작, 반환 

파일 관리자 

컴퓨터 시스템의 모든 파일을 관리 

파일의 접근 제한 관리 

파일을 열어 자원을 할당하고, 닫고 회수하는 역할 

파일 : 컴파일러, 데이터 파일, 응용프로그램, 운영체제 조차도!

 

 

운영체제의 유형 

일괄처리 (batch processing)

작업을 모아서 처리 

사용자와 상호작용 없이 순차적으로 실행 

효율성 평가 : 처리량, 반환시간

처리량 : 주어진 시간안에 얼마나 많은 작업을 처리했는지 

반환시간 : 작업의 생성 시점부터 작업의 종료 시점까지의 소요시간 

ex) 답안지를 모두 모아서 한번에 시스템을 돌려서 처리한다. 사용자가 중간에 답을 변경 못한다. 

 

대화형 (interactive)

시분할 운영체제

일정한 시간 간격으로 끊어서 다양한 프로세스들에게 번갈아가며 할당한다. 

이용자에게 즉각적 피드백 제공

응답시간 : 요청한 시점부터 반응이 시작되는 시점까지의 소요시간

일괄처리 > 대화형 > 실시간 

 

실시간 (real-time)

가장 빠른 응답 시간

처리의 결과가 현재의 결정에 영향을 주는 환경에서 사용한다. (즉각적으로 반응해야하는 특수한 목적) 

ex) 미사일 제어, 증권거래 관리, 은행 입출금 시스템 

 

하이브리드 (hybrid) 

일괄처리 + 대화형 

벡그라운드에서 일괄처리 프로그램이 실행되고, 터미널을 통해 이용자가 응답을 얻을 수 있다. 

상황에 맞게 사용가능 

대부분의 대형 운영체제

 

'컴퓨터과학 > 운영체제' 카테고리의 다른 글

운영체제 - 교착상태  (0) 2020.04.13
운영체제 Day 3  (0) 2020.04.11
운영체제 Day2  (0) 2020.04.03