[CS] 운영체제 - 1강

tpwhzla·2023년 2월 27일
0

CS

목록 보기
2/11

컴퓨터 시스템의 구성

하드웨어

CPU, 램, 키보드 프린터기, 스캐너, 네트워크 장치(공유기) 등등...

소프트웨어

웹, pdf 뷰어, ppt ~~~ 모든 프로그램


운영체제

  • 대표적인 시스템 소프트웨어
  • 컴퓨터 시스템의 자원을 관리하고 컴퓨터 프로그램이 제대로 동작하게 하기 위한 서비스를 제공함

하는 역할?
1. 컴퓨터 시스템 자원 관리

  • 자원 : 하드웨어 자원, 소프트웨어 자원, 데이터
  • 예시 : 저장장치에서 데이터 읽어오기, 키보드나 마우스 제어, 프로그램 동시 실행 시 CPU와 메모리를 효율적으로 관리
  • 컴퓨터 시스템을 효율적으로 운영하는 목적

2. 사용자 지원

  • 사용자가 내린 명령을 해석하여 실행하게 함
  • 사용자와 하드웨어 사이의 매개체 역할
  • 사용자에게 편의성을 제공하는 목적

운영체제가 없었을 때 초기의 컴퓨터 시스템

응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어했다.

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

여러 사용자가 하드웨어를 공유하는 경우에는 자원 분할이 어려웠다.

운영체제가 있는 컴퓨터 시스템

  • 하드웨어와 응용 프로그램 사이에 운영체제가 위치했다.
  • 운영체제가 컴퓨터 시스템의 자원을 제어했다.
  • 따라서, 컴퓨터 시스템이 안정적이고 효율적으로 작동했다.

커널모드와 사용자 모드

  • 커널 모드(Supervisor mode)
    하드웨어를 직접 제어할 수 있는 CPU명령어를 사용하는 모드
    따라서, 운영체제의 커널이 동작하게 된다.

  • 사용자 모드(보호 모드)
    응용 프로그램이 동작하는 모드로서, 하드웨어를 직접 제어할 수 있는 CPU 명령어를 사용할 수 없는 모드
    사용자 모드에서는 하드웨어 제어 명령어를 사용할 수 없기 때문에, 응용 프로그램 안에 하드웨어 컨트롤을 다 넣었더라도 접근 자체가 불가능하다.

커널

커널 모드에서 동작하는 운영체제의 핵심 요소

응용프로그램과 하드웨어 수준의 처리 가교 역할을 한다.

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

  • 일체형 커널
    운영체제의 모든 서비스가 커널 내부에 포함되어 있으며, 커널 내부 요소들이 서로 상호작용을 한다.
    그러나, 한 요소라도 오류가 발생하면 시스템 전체에 장애가 발생할 수 있다.
    예시 : UNIX LINUX

  • 마이크로 커널
    운영체제 요소의 대부분을 커널 바깥으로 분리시킨다. (커널을 최소화 시켰다.)
    메모리 관리, 멀티태스킹, 프로세스 간 통신(IPC) 등 최소 요소만 커널 내부에 남겨두었다.
    새로운 서비스를 추가하여 운영체제를 확장하기 쉽다는 장점이 있으며, 유지보수가 용이하여 안정성이 우수하다.
    그러나, 커널 외부 요소들 사이는 IPC(프로세스 간 통신)가 필요하여 성능저하가 발생한다.

시스템 호출

응용프로그램이 하드웨어에 대한 제어가 필요한 경우 이용하며, 운영체제에 서비스를 요청하는 알고리즘이다.

사용자 모드에서 응용프로그램에서 시스템 호출이 발생하면, 커널 모드가 작동하게 된다.
시스템 호출에 따라 운영체제는 하드웨어에 호출된 역할을 수행한다.
역할이 수행되면, 커널모드가 종료되고 사용자 모드로 돌아가게 된다.


운영체제의 구성

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

1. 프로세스 관리자 (CPU)

프로세스의 생성 및 삭제를 담당한다.

CPU 할당을 위한 스케줄을 결정하며, 프로세스의 상태를 관리하며 상태 전이 처리한다. (2강부터 제대로 익힐 것...!)

2. 메모리 관리자 (RAM)

  • 메모리 (주기억 장치) 공간에 대한 요구의 유효성 확인
  • 메모리 할당 및 회수
  • 메모리 공간 보호

등의 역할을 수행한다.


할당 받는 공간에 대한 유효성을 판단한다, (해당 그림에서, 문서 편집기의 공간을 할당해 주는 역할!)

또, 다른 프로세스의 공간을 침범하는지에 대해 보호한다. (8주차부터 제대로 익힐 것...!)

3. 장치 관리자(하드웨어에 존재하는 각각의 장치들을 관리한다.)

  • 컴퓨터 시스템의 모든 장치 관리
  • 시스템 장치의 할당, 작동, 반환

하드 디스크, SSD, 키보드, etc ... 등등을 관리

12강부터 제대로 익힐 것!

4. 파일 관리자(데이터, 프로그램이 담긴 FILE을 관리)

  • 컴퓨터 시스템의 모든 파일 관리
  • 저장장치의 공간 관리
  • 파일의 접근 제한 관리

프로그램 파일 / 데이터 파일
12강 이후부터 간략하게 공부할 것!


운영체제의 유형

일괄처리 운영체제

작업을 모아서 순서대로 처리하는 방식 (Batch processing)

사람(오퍼레이터)가 하던 일을 프로그램이 빠르게 처리하게 되면서, 전체적인 작업 속도가 향상되었다.
나중에 들어온 작업은 앞선 작업들이 모두 끝날 때까지 아무런 상호작용 없이 기다려야만 한다.

(A가 끝나야 B가 작업되고, B가 끝나야 C가 작업 되는데 C는 1분이면 완성되는 작업임에도 불구하고, 일주일이 걸리는 A를 늦게 왔다는 이유로 기다려야 하는 프로세스)

시분할 운영체제

Time Sharing, 시간을 쪼개는 방식

  • 각 사용자의 프로그램을 한 번에 조금씩 수행하는 방식
  • 대화형 운영체제라고 함
  • 사용자들은 마치 혼자 컴퓨터를 사용하는 듯한 느낌을 받게 된다.
  • 응답시간이 일괄처리 운영체제보다 크게 단축됨
    응답시간 : 요청한 시점부터 반응이 시작되는 시점까지의 소요시간

일괄처리 운영체제에 비해서, 응답 시간이 굉장히 짧아졌다.

실시간 운영체제

Real time, 원하는 시간 내에 프로그램의 결과를 받을 수 있는 방식

  • 처리 결과가 현재의 결정에 영향을 주는 환경에서 사용됨 (RTOS)
    Ex) 미사일 제어 시스템, 증권거래 관리 시스템 등
  • 중요한 작업에 대한 처리 기한을 맞추는 것이 중요
    우선순위가 높은 작업을 우선 처리할 수 있는 기법을 활용하였다.

분산 운영체제

분산 시스템 : 컴퓨터가 2개 이상 모여있는 형태로, 이 시스템이 네트워크로 연결 되어 있을 때 서로의 자원을 이용하는 시스템

  • 다른 컴퓨터의 시스템 자원을 사용하는 것이, 사용자에게는 마치 자신의 컴퓨터에 있는 자원을 사용하는 것 같이 체감할 수 있어야 함.
profile
DevOps / Infrastructure / Cloud Native / Platform Engineering

0개의 댓글

관련 채용 정보