STUDY/운영체제

[운영체제] 운영체제란?

디리릭 2021. 10. 11. 17:27
728x90

운영체제(Operation System)

컴퓨터의 하드웨어를 제어하는 소프트웨어이다. 

운영체제가 하는 일은 유저와 컴퓨터간의 중간역할을 한다. 

 

Computer system structure

위의 그림과 같이 유저는 응용프로그램을 제어하고 직접적으로 하드웨어를 제어하지 못한다. 

어플리케이션과 하드웨어 사이에 운영체제가 중간 다리 역할하며 CPU, 기억장치, IO 컨트롤러 등 컴퓨터 시스템 자원을 효율적으로 관리한다. 

 

  • OS Services 
    운영체제는 프로그램을 실행을 위해 아리애 같은 서비스를 제공합니다 
    • User interface (GUI, CLI, Touch screen interface 등)
    • Program execution
    • I/O operation
    • File-system manipulation
    • Communications
    • Error detection
    • Resource allocation
    • Loggin
    • Protection and security
  • OS Operations
    유저가 어플리케이션을 사용할 때는 User mode였다가 system call을 사용하여 OS에 서비스를 받아야하는 이벤트를 발생시킨다. 이 때 Kernel mode로 변경되어 시스템 콜에 대한 작업을 완료하고 다시 User mode로 변경된다. 
    User mode일 때는 직접적으로 하드웨어를 제어할 수 없다. Kernel mode로 변경되었을 때만 가능하다!! 

    Transition from user mode to kernel mode
  • OS의 분류
    운영체제의 분류는 크게 동시 자원을 지원하지 여부, 작업 처리하는 방식 여부에 따른 분류로 나눌 수 있다.
    • 동시 자원을 지원하는지 여부에 따른 분류 
      - 단일작업 (한번에 하나만 처리 _ 예시) DOS)
      - 다중작업 운영체제
      시분할 시스템 (CPU가 한개있는 컴퓨터의 성질)
      컴퓨터 처리 능력이 짧은 시간 단위로 구분하고 이를 여러 사용자에게 조금씩 분할 해 서비스 하는 방식이다. 
      Multi Programing (CPU가 한개있는 컴퓨터의 성질)
      메모리에 여러 프로그램 프로그램을 올려놓고 처리하는 방식
      Multi processor(= Multi tasking, CPU가 한개 이상있는 컴퓨터의 성질)
      하나의 CPU가 실행 속도가 빠를 때 여러개의 잡을 바꿔주면서 여려개의 잡이 동시에 작동하도록 하는것 (like concurrency)

    • 작업을 처리하는 방식에 따른 분류
      일괄처리(batcj processing)
      작업 요청의 일정량을 모아서 한꺼번에 처리하는 방식
      시분할(time sharing)
      여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 빠르게 나눠서 처리하는 방식
      실시간(real time)
      실시간 운영체제는 정해진 시간안에 일이 반드시 종료됨이 보장되어야하는 시스템에서 사용된다. 
  • OS 자원관리 기능
    자원은 하드웨어와 소프트웨어 자원으로 분류된다. CPU가 여러 프로세스들을 효율적으로 관리해야한다. CPU와 메모리는 전원이 꺼지면 처리하던 정보들이 모두 사라지기 때문에 전원이 나가도 기억해야하는 것은 보조기억장치에 파일 형태로 저장된다. 이러한 파일들이 저장되는 방식 및 접근 권한에 대래서도 운영체제가 관리하는 영역중 하나이다. 
    • CPU 스케줄링
      RAM에 여러 프로그램을 올려두고 CPU는 한개의 프로그램의 작업을 하고 RAM에서 다른 프로그램을 갈아 끼워 또 작업을 처리하는 방식인데, RAM에서 프로그램을 빼다 쓰는것을 스케줄링 하는 것이다. 
    • 메모리 관리
      물리적 메모리를 관리하는 방식에는 고정분할방식, 가변분할방식, 가상메모리 방식이 있다. 

주변 장치 및 IO컨트롤러 장치
주변 장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게 되는데 이때 발생시키는 신호를 인터럽트라고 한다. CPU는 평소에 CPU스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 신호에 대한 요청 서비스를 수행하게 된다. OS는 인터럽트를 보고(system bus)하는 역할을 한다. 

 

 

728x90