[OS] OS Definition, Structures, Interrupts

Ko Hyejung·2021년 10월 10일
0

Operating Systems

목록 보기
1/26
post-custom-banner

What is an Operating System?

Operating system is a program that acts as an intermediary between a user of a computer and the computer hardware.
운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 사이의 중개자 역할을 하는 프로그램

From the view of Users, OS is a program for ease of use and performance.

From the view of Systems, OS is a program for resource allocation and control.

  • manages all resources
  • decides between conflicting requests for efficient and fair resource use
  • controls execution of programs to prevent errors and improper use of the computer

사용자의 관점에서 OS는 사용 및 성능 향상을 위한 프로그램

시스템 보기에서 OS는 리소스 할당 및 제어를 위한 프로그램

  • 모든 리소스를 관리
  • 효율적이고 공정한 자원 사용에 대한 상반된 요청들 사이에서 결정
  • 프로그램의 실행을 제어하여 오류 및 컴퓨터의 부적절한 사용을 방지

But there's no universally accepted definition of OS.

Mobile operating systems often include not only a core kernel but also middleware – a set of software framework that provide additional services such as databases, multimedia etc.
(e.g., Apple’s iOS & Google’s Android).

“The one program running at all times on the computer” is the kernel; Everything else is either a system program (ships with the operating system) or an application program.

Computer System Operation

One or more CPUs, device controllers connect through common bus (address/data/control bus) providing access to shared memory.
Each device is connected through a specific device controller.
Concurrent execution of CPUs and devices competing for memory cycles.

  • I/O devices and the CPU can execute concurrently.
  • Each device controller is in charge of a particular device type.
  • Each device controller has a local buffer.
  • CPU moves data from/to main memory to/from local buffers.
  • I/O is from the device to local buffer of controller.
  • Device controller informs CPU that it has finished its operation by causing an interrupt.

하나 이상의 CPU, 장치 컨트롤러가 공통 버스(주소/데이터/컨트롤 버스) 를 통해 연결되어 공유 메모리에 액세스할 수 있습니다. 각 장치는 특정 장치 컨트롤러를 통해 연결되며 메모리 주기를 두고 경쟁하는 CPU와 장치의 동시 실행됨

  • I/O 장치와 CPU를 동시에 실행
  • 각 장치 컨트롤러는 특정 장치 유형을 담당
  • 각 장치 컨트롤러에는 local buffer
  • CPU는 데이터를 주 메모리에서 로컬 버퍼로 이동
  • I/O는 디바이스에서 컨트롤러의 로컬 버퍼로 전달
  • 장치 컨트롤러는 CPU에 인터럽트를 발생시킴으로써 작동을 마쳤음을 알림

Interrupt Handling from HW perspective


Old Interrupt Handling (x86)

  • I/O devices have IRQ lines. (IRQ is an Interrupt Request)
  • IRQs are mapped by PIC (Programmable Interruptible Controller) to generate interrupts to CPU.
  • 80386 core has one INTR (Interrupt) and one INTA (Interrupt Acknowledge) line.

Interrupt Handling from SW perspective

Interrupt Vector Table
-> Interrupt Service Routine
-> Disabling Interrupt
-> Save Processor-State
-> Interrupt Handling
-> Restore Processor-State
-> Enabling Interrupt

  • Interrupt transfers control to the interrupt service routine (or interrupt handler), through the interrupt vector, which contains the addresses of all the service routines (generally stored in low memory)
  • Interrupt handler is generally a part of the operating system
  • Interrupt architecture must save the address of the interrupted instruction
  • A trap (or an exception) is a software-generated interrupt caused either by an error or a user request
  • 인터럽트는 모든 서비스 루틴의 주소를 포함하는 인터럽트 벡터를 통해 인터럽트 서비스 루틴(또는 인터럽트 핸들러)으로 제어 권한을 전송 (일반적으로 낮은 메모리에 저장됨)
  • 인터럽트 핸들러는 일반적으로 운영 체제의 일부
  • 인터럽트 아키텍처는 중단된 명령의 주소를 저장해야 함
  • trap(또는 예외)는 오류 또는 사용자 요청에 의해 발생하는 소프트웨어 생성 인터럽트

Interrupt Timelines (Single Process)

Classes of Interrupts

Program (Trap or Software Interrupt)

  • arithmetic overflow
  • division by zero
  • execute illegal instruction
  • reference outside user’s memory space
  • by user’s request (e.g. system call or monitor call)

Timer
I/O
Hardware failure

프로그램(트랩 또는 소프트웨어 인터럽트)

  • 산술 오버플로우
  • 0으로 나누기
  • 잘못된 지시 실행
  • 사용자의 메모리 공간 외부 참조
  • 사용자의 요청(시스템 통화 또는 모니터 통화 등)

타이머
입출력
하드웨어 오류

post-custom-banner

0개의 댓글