본문 바로가기

Computer Science/Operationg System (운영체제)

[OS] computing system

(remind) von neumann machine

: CPU는 오직 memory를 통해서만 처리 / 내장형 프로그램 방식

1. mode bit

: dual mode의 상태를 나타낸다.

- mode bit 0 : kernel mode | CPU 권한이 OS에게 있다 (= CPU가 OS의 코드를 수행하고 있다.) → PC가 OS의 주소를 가리킨다.

- mode bit 1 : user mode | CPU 권한이 user program에 있다. (= CPU가 사용자가 만든 응용프로그램을 수행하고 있다.) → PC가 program memory 주소를 가리킨다.

📌왜 dual mode를 사용할까? : 시스템 보호를 위해서이다. user가 독자적으로 수행할 경우 OS에 위협이 갈 수 있는 작업은 kernel에게 요청하도록 dual mode를 사용한다. 요청을 받은 OS는 수행 후 return하여 다시 user mode로 돌아간다.

📌PC 주소로 충분히 알 수 있는데 왜 mode bit를 만들었는가? : double check를 위해서이다. critical한 피해를 막기위해 두 가지 모두 확인하여, OS에게 위협이 가는 위치에 user가 접근하지 못하게 한다.

 

2. timer

: 현재 수행중인 프로그램을 정지하는 일이 주요 task이다. time sharing을 위해 필요하다. 일정 시간이 흐르면 time interrupt로 CPU에게 알린다.

 

3. I/O device

: device controller(작은 CPU 역할)와 local buffer(작은 mem 역할)를 통해 CPU에게 할당받은 일을 독자적으로 수행하는 muliprograming이 가능하다.

- 초기에는 CPU가 I/O device도 직접 관리하였지만(비효율적), CPU와 DRAM을 작게 구현가능해졌다.

- 수행되는 동안 CPU는 다른 작업을 수행하고, I/O device는 작업이 끝나면 CPU에 interrupt를 보내 요청을 완료했음을 알린다.

 

4. exception (interrupt)

: 특정 이벤트 발생으로 인해 현재 진행 중인 것을 멈추고 후에 다시 실행한다. user mode에서 exception이 발생하여 kernel mode로 넘어오면, 명령어와 data로 된 해결책(exception handler)으로 해결한 후 다시 원래 실행될 차례의 user code로 되돌아간다.

 

(1) asynchronous exception <interrupt> : CPU 외 다른 하드웨어에서 예외적 상황을 발생시킨 exception

예측할 수 없다. (ex. 웹페이지 접속 소요시간이 항상 다르다.)

handler 처리 후 next instrution을 수행한다.

(2) synchronous exception : CPU 자체가 발생시키는 exception

- traps : 사용자의 의도에 의해 발생 / 처리 후 next instrution을 수행

ex. system calls(user가 하드웨어에 접근할 수 있는 유일한 방법)

system call → 그동안 CPU는 다른 일을 수행 → hardware interrupt (trap과 fair로 진행됨) → next instruction 수행

- faults : 사용자가 의도X + 복구 가능 / 처리 후 fault가 발생했던 current instruction 재수행

ex. divide by 0, pade faults : 프로그램이 시킨 주소가 (다른 프로그램의) 가면 안되는 메모리 주소 or 해당주소에 아무것도 없는 경우

사용자가 의도X + CPU가 수행 불가 → OS 도움으로 해결 → fault 발생했던 곳부터 다시 수행

- aborts : 사용자 의도X + 복구 불가 → current program 종료해야 한다.

 

🌟handling exception

: exception 발생! → exception number 맞춰 exception table로! → exception table에서는 해당 exception을 처리할 수 있는 코드(interrupt handler)가 있는 메모리주소를 pointer 하고있다.

 

5. DMA

: CPU와 I/O 장치 사이에 존재하여 요청을 처리한다. I/O 장치가 CPU의 관여 없이 mem과 직접 연결되게 해주는 하드웨어이다.

- 장점 : CPU utilization 증가

- 단점 : cost 발생

 

(1) block diagram : DMA의 구성

- word count : mem addr 정보 + 몇 byte 필요한지

- start address : word count 통해 알 수 있다.

- data register : data 임시저장

- control logic : 무슨 작업 수행할지 (read, interrupt 등)

(2) operation mode

- burst : bus 권한이 DMA에게 있어 많은 데이터가 이동

- cycle steal : CPU가 사용중이지만, cycle 마다 CPU와 권한 번갈아가며 사용

- transparent : CPU가 사용하지 않을 때만 사용

 

6. Bus : 개별 요소들이 공유하는 데이터의 통로

'Computer Science > Operationg System (운영체제)' 카테고리의 다른 글

[OS] scheduling(1)  (0) 2024.05.06
[OS] LDE machanism (limited direct execution)  (0) 2024.05.01
[OS] Process  (0) 2024.04.29
[OS] OS의 특징  (0) 2024.04.29
[OS] operating system이란? / history  (0) 2024.04.29