GrowMe

[운영체제] 컴퓨터 시스템과 프로그램 수행 (2) 본문

CS(Computer science)

[운영체제] 컴퓨터 시스템과 프로그램 수행 (2)

오늘도 타는중 2022. 12. 9. 05:52
컴퓨터 시스템과 프로그램 수행
# 동기식 입출력 VS 비동기식 입출력
# DMA
# 서로 다른 입출력 명령어
# 저장장치 계층 구조
# 프로그램의 실행
# 커널 주소 공간의 내용
# 사용자 프로그램이 사용하는 함수
# 프로그램의 실행 단계


✍️ 본 포스팅은 이화여자대학교 반효경 교수님의 "운영체제" 강의를 들으며 정리한 내용입니다.

 


*들어가기 전에

-> 아래의 1편을 먼저 읽은 후, 내용들을 읽으면 이해가 수월할 것 같아요 🧐

https://grow-myself.tistory.com/54

 

[운영체제] 컴퓨터 시스템과 프로그램 수행 (1)

컴퓨터 시스템과 프로그램 수행 # 컴퓨터 시스템 구조 # Mode bit # Timer # Device Controller # 시스템콜 # 인터럽트 # 입출력의 수행 ✍️ 본 포스팅은 이화여자대학교 반효경 교수님의 "운영체제" 강의를

grow-myself.tistory.com


*동기식 입출력 VS 비동기식 입출력

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

  • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어간다.
  • 구현 방법1 : I/O가 끝날 때 까지 기다림
    • I/O가 끝날 때까지 CPU를 낭비시킴
    • 매 시점 하나의 I/O만 일어날 수 있음
  • 구현 방법 2 : I/O가 끝날 때 까지 다른 프로그램에게 CPU를 줌
    • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음
    • I/O 처리를 기다리는 줄에 그 프로그램 줄 세움

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

  • I/O가 시작된 후 입출력 작업 끝나기를 기다리지 않고
  • 즉시 사용자 프로그램에 제어가 넘어감 

-> 두 경우 모두 I/O의 완료인터럽트로 알려줌


*DMA (Direct Memory Access)

  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU의 중재 없이 device controller가 device의 buffer stroage의 메모리에 block 단위로 직접 전송
  • 일정 바이트가 쌓이면 그 덩어리인 block을 메모리에 copy하고, 그 결과를 CPU에 인터럽트로 알려줌

*서로 다른 입출력 명령어

  • I/O를 수행하는 special instruction에 의해 : I/O 주소는 별도의 I/O주소 통해 접근 (일반적)
  • Memory Mapped I/O에 의해 : I/O 주소도 연장된 메모리 주소로 통용하여 접근

*저장장치 계층 구조

  • Registers 위에 CPU가 존재(그림에는 없음)
  • 위로 갈수록 속도가 빠른 매체 사용, 용량이 적음(단위 공간 당 비용이 비쌈)
  • 연두색 라인은 휘발생 매체, 분홍색 라인은 비휘발성 매체로 구성됨

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


  • 프로그램을 실행시키면 그것이 메모리의 프로세스가 되는데
  • 각 프로그램은 실행하면 독자적인 메모리 주소가 주어짐 (Virtual memory)
  • 프로그램을 종료하면 그 주소가 사라진다
  • 프로그램 안에서 code / data 등 사용하는 부분만 Physical memory에 올리고, 사용이 끝나면 memory에서 쫒아내짐
  • 따로 보관이 필요한 code / data 등은 Swap area 공간에 보관됨
  • Physical memory와 Swap area는 휘발성 공간(전원 나가면 사라짐)
  • File system은 비휘발성 공간(전원 나가도 보존됨)
  • Address translation : Virtual memory에서는 1000번이었는데 Physical memory에 올라가면 20번 등으로 바뀜

*커널 주소 공간의 내용

  • 운영체제 커널의 주소 공간 내용
  • PCB(Process Kernel Block) : Physical memory 안에 프로그램이 하나 돌아가면 그 프로그램을 관리하기 위한 자료구조가 운영체제 안에 만들어짐. 그 자료구조가 PCB
  • 호출을 시도한 프로그램마다 커널 스택을 따로 두고있음

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

■ 함수 (function)

  • 사용자 정의 함수 : 자신의 프로그램에서 정의한 함수
  • 라이브러리 함수
    • 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
    • 자신의 프로그램의 실행 파일에 포함되어 있음
  • 커널 함수
    • 운영체제 프로그램의 함수
    • 커널함수의 호출 = 시스템 콜

*프로그램의 실행 단계

Comments