-
2-2. System Structure & Program Execution 2OS/운영체제 강의정리 2021. 12. 30. 19:18
2-2. System Structure & Program Execution 2
컴퓨터 시스템 구조, 인터럽트(Interrupt), 동기식 입출력과 비동기식 입출력, 시스템콜(System Call), DMA(Direct Memory Access), 서로 다른 입출력 명령어, 저장장치 계층 구조, 프로그램의 실행(메모리 load), 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수, 프로그램의 실행
동기식 입출력과 비동기식 입출력
동기식 입출력(synchronous I/O)
I/O요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
- 구현방법 1
- I/O가 끝날때까지 CPU를 낭비시킴
- 매 시점 하나의 I/O만 일어날 수 있음
- 구현 방법 2
- I/O가 완료될 때 까지 해당 프로그램에게서 CPU를 빼앗음
- I/O 처리를 기다리는 줄에 그 프로그램 줄 세움
- 다른 프로그램에게 CPU를 줌
비동기식 입출력(asynchronous I/O)
I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
*두 경우 모두 I/O의 완료는 인터럽트로 알려줌
정리!
프로세스가 입출력 요청을 했는데, 본인이 직접하는게 아니라 운영체제를 통해서 해야하기때문에 사용자 프로세스는 운영체제한테 요청을 함. 입출력은 오래 걸려서 수행이됨, 수행이 되는 동안에 입출력을 요청한 프로세스가 기다려야하면, 입출력이 끝날때까지 아무일을 안하고 기다리면 동기식 입출력
사용자 프로세스가 입출력 요청을 하고 곧바로 CPU를 잡아서 뭔가 인스트럭션을 실행을 하면 비동기식 입출력
프로세스가 입출력이 진행되는 동안에 CPU를 가지고있든 안가지고 있는건 중요하지않고, 입출력을 실행하지않고 기다리면 동기식입출력이고, 입출력 요청을 해놓고 그이전에 바로 인스트럭션을 실행하게되면 비동기식 입출력!

DMA (Direct Memory Access)
- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
- CPU 중재 없이 디바이스 컨트롤러가 디바이스의 버퍼 스토리지의 내용을 메모리에 블럭 단위로 직접 전송
- 바이트 단위가 아니라 블럭 단위로 인터럽트 발생시킴
- 왜? CPU가 인터럽트가 계속 발생하면, 효율이 낮아지니까 중간에서 중재해주는거지.
저장장치 계층 구조

위로갈수록 속도가 빠른 매체 사용하고 단위공간당 가격이 비싸기에 용량이 적음 primary 부분은 휘발성 매체로 구성, Secondary부분은 비휘발성 매체로 구성됨.
Primary : CPU에서 직접 접근이 가능하다. 바이트단위로 접근이 가능하다.
Secondary : CPU가 직접 접근이 불가능하다.
Caching: 빠른 매체로다가 정보를 읽어들여서 재사용을 목적으로함. 일단 위로 읽어 놓으면 위에서 바로 갈 수 있음
프로그램의 실행(메모리 load)


PCB
시스템안에 프로그램이 하나 돌아가면 그 프로그램을 관리하기위한게 만들어지는데 그게 PCB, 운영체제도 함수로 이루어져있기에 이것을 Stack에서 관리함
함수 (function)
- 사용자 정의 함수
- 자신의 프로그램에서 정의한 함수
- 라이브러리 함수
- 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
- 자신의 프로그램의 실행 파일에 포함되어 있다.
- 커널 함수
- 운영체제 프로그램의 함수
- 커널 함수의 호출 = 시스템 콜
- 정리 : 라이브러리 함수에서 커널함수를 호출할 수 있다.
'OS > 운영체제 강의정리' 카테고리의 다른 글
3-2~3. Process 2,3 (0) 2021.12.30 3-1. Process 1 (0) 2021.12.30 2-1. System Structure & Program Execution 1 (0) 2021.12.30 1. Introduction to Operating Systems (0) 2021.12.30 KOCW 운영체제_이화여대_반효경 교수님 강의 (0) 2021.12.30 - 구현방법 1