Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 문제풀이
- 메모리 관리
- 자바 알고리즘
- 프로세스 동기화
- Effective Access Time
- jpa
- Shared Page
- 웹 프로그래밍
- 알고리즘
- 메모리의 불연속적 할당
- annotation
- 웹개발
- Allocation of Physical Memory
- Segmentation with Paging
- 다단계 페이지 테이블
- 스프링부트
- 프로세스 불연속 할당
- 프로세스 할당
- 자바 문제풀이
- 2단계 Page Table
- 운영체제
- 코드스테이츠 백엔드 과정 39기
- spring
- 스프링
- CS
- springboot
- linux
- 리눅스
- Inverted Page Table
- Page Table의 구현
Archives
- Today
- Total
GrowMe
[운영체제] 컴퓨터 시스템과 프로그램 수행 (2) 본문
컴퓨터 시스템과 프로그램 수행
# 동기식 입출력 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)
- 사용자 정의 함수 : 자신의 프로그램에서 정의한 함수
- 라이브러리 함수
- 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
- 자신의 프로그램의 실행 파일에 포함되어 있음
- 커널 함수
- 운영체제 프로그램의 함수
- 커널함수의 호출 = 시스템 콜
*프로그램의 실행 단계
'CS(Computer science)' 카테고리의 다른 글
[운영체제] 프로세스 관리 (0) | 2022.12.12 |
---|---|
[운영체제] 프로세스 (0) | 2022.12.10 |
[운영체제] 컴퓨터 시스템과 프로그램 수행 (1) (0) | 2022.12.06 |
[운영체제] 운영체제란 무엇인가 (0) | 2022.11.17 |
[TIL] 디자인 패턴이란 (0) | 2022.11.03 |
Comments