OS와 Computer Architecture

Seongho·2022년 4월 3일
0

운영체제

목록 보기
2/12
post-thumbnail

Kernel Space


Kernel space는 운영체제가 제어하는 공간이다.

Architecture

  • I/O 장치들과 CPU는 각자 동작한다.(당연)
  • 각 I/O Device 마다 controller가 있다.
  • 각 디바이스 컨트롤러는 local buffer를 갖고있다.
  • 결국, I/O라는 것은, local buffer와 RAM 사이에 데이터를 주고받는 동작이다.
    Memory -> I/O Controller -> Local buffer : Output
    Memory <- I/O Controller <- Local buffer : Input

OS와 Architecture의 Mutual Interaction

  • OS의 기능은 하드웨어의 성능에 따라 제한될 수 있다.
  • 하드웨어가 좋을 수록 OS는 단순해진다. (하드웨어가 많은 것을 처리하기 때문)
  • 대부분 운영체제는 어떤 하드웨어에서 동작할지 정하고 만들어진다.

Interrupt Vs Exception

  • Interrupt : 하드웨어에 의해 발생되어 운영체제가 처리
  • Exception : User-space에서 발생되어 운영체제가 처리

Interrupt(OS와Hardware)

배경: 입출력 수행이 CPU 명령어 수행보다 훨씬 느리다. CPU를 효율적으로 사용하려면?


운영체제가 I/O작업 끝났는지 확인하는 법

  • Polling : CPU가 I/O controller에 반복해서 물어봄 (1)
  • Hardware interrupt : I/O 관련 명령어를 수행한 CPU는 다른 명령어를 수행하고, 명령어 하나를 처리할 때마다 인터럽트 발생 여부를 확인한다. I/O controller가 작업이 끝나면 Interrupt controller에 신호를 보내면 interrupt 발생시킨다. (2->3)
    ->인터럽트를 확인하면 CPU의 레지스터 값들을 저장하고 어떤 종류의 인터럽트인지 확인한 후 ISR(인터럽트 서비스 루틴) 코드를 실행한다.

Exception(OS와 Software)

Exception의 종류

  • Trap : Application에서 운영체제 내부 코드에 어떠한 작업을 하기 위해 운영체제에 시스템 콜을 요청하여 운영체제가 해당 작업을 수행하도록 하는 것이다. 입출력 작업같이 커널모드에서만 해결할 수 있는 문제에 사용 (의도적인 예외상황)
  • Faults : 무언가 해결할 수 있는 문제가 발생했을 때 Exception Handler가 문제를 해결한 뒤 돌아와 처리하던 일을 처리한다. (의도적이지 않은 예외상황)
  • Aborts : 복구가 불가능한 에러가 발생했을 때. Exception Handler가 문제를 해결하지 못하면 프로세스를 종료시켜버린다. (의도적이지 않은 예외상황)

DMA

원칙적으로 메모리는 CPU에 의해서만 접근 가능한 하드웨어인데, CPU가 모든 입출력 작업을 담당하면 비효율적이기 때문에 이를 해결하기 위해 DMA가 만들어졌다. DMA는 byte단위로 정보를 읽어오는게 아니라 block단위로 정보를 읽어와 CPU에 인터럽트를 발생시켜 해당 작업의 완료를 알린다. Block 단위로 데이터에 접근하기 때문에 대용량을 빠르게 전송하는 경우에 사용한다.

Timer

하나의 프로그램에 의해 CPU가 독점되는 것을 막기 위한 하드웨어로, Timer는 특정 시간이 지날 때마다 인터럽트를 발생시켜 다른 프로그램에 CPU를 이양시킨다.

Protected(Privileged) Instruction(특권명령)

I/O나 메모리를 다루는 명령어로, 커널모드에서만 실행 가능한 명령이다. 즉, 운영체제가 수행하는 명령어이다. CPU 내부의 mode bit가 0이면 kernel모드이고, 1이면 user모드이다.

OS Protection

user-mode와 kernel-mode로 나누어 명령어를 처리하는데, user-application에서 kernel-mode로 진입하려면 system call을 이용한다.

Memory Protection


base register(기준 레지스터)와 limit register(한계 레지스터)를 이용해 프로세스가 접근할 수 있는 메모리의 범위를 정함으로써 불법적인 메모리 접근을 막는다.

MMU(Memory Management Unit)

CPU 코어 안에 탑재되어 가상메모리 주소를 실제 메모리 주소로 변환해주는 역할을 한다.

Ref. 충북대학교 조희승 교수 OS Course

profile
Record What I Learned

0개의 댓글