본문 바로가기
  • 저희는 평생 개발할 운명이걸랑요
Tech.log/운영체제

[시스템 구조와 프로그램의 실행_2]

by SpaciousKitchen 2021. 4. 29.

동기식 입출력(synchronous I/O)

- I/O 요청후 입출력이 완료 된 후에야 제어가 사용자 프로그램으로 넘어감

 

- 구현 방법1

  • I/O가 끝날때 까지 CPU를 낭비시킴
  • 매 시점 마다  I/O만 일어날 수 있다.

- 구현 방법2

  • I/O가 완료 될때 까지 프로그램에서 CPU를 빼았음
  • I/O처리를 기다리는 줄에 프로그램 줄을 세움
  • 다른 프로그램에게 CPU를 줌

 

비동기식 입출력(asynchronous I/O)

- I/O 요청후 입출력이 완료를 기다리지 않고 제어가 사용자 프로그램으로 넘어감

 

 

두 경우 모두 종료 될 때 인터럽트를 통해 알린다.

 

 

전자 동기식 입출력 ,후자 비동기식 입출력

DMA(Direct Memory Access)

- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해서 사용한다.

- CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block단위로 직접 전송한다.

- 바이트 단위가 아니라 block단위로 인터럽트를 발생시킨다.

 

 

 

일반 적인 I/O

메모리에 I/O 주소값을 할당해서 I/O에 접근할수 있도록 하는 방식

 

 

저장장치의 계층구조

-위로 갈 수록 비싸고 ,내려갈 수록 싸다.

-위는 휘발성 아래는 주로 비휘발성이다.

- 위는 CPU가 직접 접근하려 처리, 아래는 직접 접근 할 수 없다.

 

캐싱:빠른 스토리지로 정보를 옮겨서 쓰는 것 

 

 

프로그램의 실행(메모리 load)

전체 과정

파일 시스템에 있는 실행 파일 >메모리로 옮겨서 실행한다.

 

상세 과정

가상 공간에 프로그램 만의 독자적인 주소 생성 > 필요한 코드나 필요한 것만 >물리적인 메모리에 옮겨서 실행

(불필요한 것은 Swap Area로 옮겨짐)

 

 

커널 주소 공간 내용

 

Code

-커널내의 필요한 코드

 

data

- 프로세스 관리

-CPU,메모리등을 자료구조의 형태로 관리

 

Stack

- 함수를 호출하고 리턴을 위한 Stack

 

 

 

사용자 프로그램이 사용하는 함수

 

커널 함수 호출시는 인터럽트 라인을 셋팅해 시스템 콜을 통해서만 호출이 가능하다.

 

 

CPU의 프로그램 실행 루트

'Tech.log > 운영체제' 카테고리의 다른 글

[Thread-safe]  (0) 2021.05.22
[프로세스와 스레드의 차이]  (0) 2021.05.19
[시스템 구조와 프로그램의 실행]  (0) 2021.04.28
[운영체제란 ?]  (0) 2021.04.28

댓글