일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 3강
- 원 둘레
- Chapter3
- 평균
- 연습문제
- () (+) 차이
- 정답
- perpectC
- 오류
- getchar()
- 3장
- ㅔㄴ트 안잉
- eslint
- putchar()
- perpect C
- 원 면적
- 티스토리 커버이미지 변경
- 3판
- 합
- 쉼표필요
- 백엔드 개발자 #로드맵
- 풀이
- 실습예제
- +연산자 의미
- PERPECT
- eslint 쉼표필요 오류
- JavaScript
- c
- 비트마스크
- 점프 투 파이썬 #패키지 # 비전공자
- Today
- Total
옥수수와 식빵 그리고 코딩
System Structure & Program Execution 1 본문
컴퓨터 시스템에서 하드웨어가 어떻게 동작하는지, 프로그램이 이런 하드웨어에서 어떻게 돌아가는지.
컴퓨터 하드웨어적에 대한 설명
memory : CPU의 작업 공간
CPU는 매 클럭 사이클마다 메모리에서 기억을 읽어옴
I : input - 키보드, 마우스 등등
O : output - 프린트, 모니터 등등
디스크 : 인풋이자 아웃풋
컴트롤러들이 각 iodevice를 컨트롤함. 각 컨드롤러들이 작은 CPU라 보면 됨
CPU안에 메모리보다 더 빠르게 읽을 수 있는 작은 저장공간 : registers
CPU는 항상 메모리하고만 일함. 만약 다른 장치(키ㅗ드나 디스크 등)와 접근하기 위해 interrupt line이 존재
만약 무한 루프 프로그램이라면
timer : 특정 프로그램이 CPU를 독점하는 것을 막음
프로그램을 돌리다가 타이머에 설정된 시간이 되면 CPU는 명령(instruction)을 멈추고 주도권을 운영체제로 넘어옴.
무한루프 아니면 작업 끝나면 운영체제에 CPU반납
IO작업이 팔요하면 운영체제에 CPU넘김
DMA controller ; i/odivice에서 인터럽트 걸 때 마다 CPU가 멈추면 비효율적. I/odivice에서 오는 입력을 모아서 한꺼번에 CPU로 전달 (효율적)
<mode bit>- 보안을 목적으로 instuction을 나누어 둠
mode bit이 0일때(특권명령) 즉 운영체제가 CPU에서 실행중일 때는 모든 일을 할 수 있음. 운영체제가 CPU를 가지고 있기 때문
mode bit이 1일때(일반명령), 즉 사용자 프로그램이 CPU를 넘겨 받을 때는 접근이 제한되어 있음. 한정된 명령만 실행됨
왜냐 사용자 프로그램은 나쁜 짓을 할 수 있기 때문
<타이머>
<device controller>
원래는 메인메모리는 원칙적으로 CPU만 접근 가능하게
i/odivice는 각 버퍼가 달려 있음
CPU는 memory에 있는 명령을 받아서 수행. 직접 일 하는게 아니라 메뉴얼에 적힌 대로 일하는 것.
이런 전체적인 통제를 운영체제가 함/
<입울력(i/o)의 수행>
시스템 콜 : 사용자 프로그램이 디스크에서 뭘 읽어와야 할 때, 사용자 프로그램이 운영체제 함수를 호출하는 것
interrupt : 일반적인 인터럽트, 타이머 인터럽트나 i/o컨트롤러가 걸어주는 인터럽트
trap : 소프트웨어 인터럽트
넓은 의미는 두개 다 포함
i/o를 하기 위해 인터럽트가 두가지 걸림
처음에는 i/를 요청하는 시스템 콜 -> CPU는 다른 프로그램에 넘어감
i/o를 하기 우ㅐ 필요한 인터럽트는 소프트냐 하드냐
요청할 때는 소프트 다 하고 끝나면 하드르 끝났다고 말함
현대의 운영체제는 CPU를 잡을 일이 없음
<시스템 콜>
'2022 > 운영체제 - 반효경' 카테고리의 다른 글
System Structure & Program Execution 2 (0) | 2022.02.23 |
---|---|
Introduction to Operating Systems (0) | 2022.02.21 |