-
[운영체제]Chapter03 - 컴퓨터 하드웨어의 구조 와 컴퓨터 부팅순서IT&컴퓨터공학/운영체제 2020. 1. 15. 22:11
컴퓨터 하드웨어 요소 중 중요한 부분만 정리해 보았습니다.😊
1. 프로세서 ( processor ) → 프로세스 와 헷갈리지 말것 !
① 프로세서 란 ?
- CPU : '컴퓨터의 두뇌'
메모리에서 명령을 가져와서 ( fetch ) 해석하여 ( decode ) 실행한다 ( execute ) . 그 다음 명령도 이 루틴을
그대로 반복하며 프로그램이 완료될 때 까지 이 루틴을 반복한다.
② 프로세서 성능 향상을 위한 두가지 구조 : 한번에 하나 이상의 명령을 실행하도록 구성함
- pipe -line 구조 : fetch , decode , execute 하는 unit을 별도로 구성함
- super - scalar 구조 : 여러개의 명령들을 한번에 fetch 하여 decode 하고 execute 할 수 있는 시점까지 holding buffer에 둔다. 성능면에서는 pipe-line 구조보다 좋지만, holding buffer 때문에 명령어 순서가 바뀔 수 있다.
③ 멀티 코어 - CPU가 여러개 . 멀티 코어 칩을 이용하려면 멀티프로세서 운영체제가 꼭 필요하다.
왼쪽의 멀티코어의 경우 , 캐시하나를 4개의 코어가 서로 공유한다. 이 캐시하나로 서로 데이터를 공유한다. 때문에 코어 1이 데이터를 캐시에 저장해두면, 코어2는 동기화과정없이 그냥 캐시에서 데이터를 꺼내와서 사용할 수 있다.
이런 멀티코어 칩은 사용자가 여러 프로그램을 동시에 돌리지 않고 하나만 사용하는 경우에 효율이 좋다.
반면 오른쪽 멀티코어는 4개의 코어 각각 독립적인 캐시를 가지고 있다.
이런 멀티코어 칩은 사용자가 여러 프로그램을 동시에 이용할 때 효율이 좋다.
2. 메모리
① 메모리의 계층구조
- 레지스터( Register ) : CPU 내부에 존재. 자료(핵심 변수와 임시결과) 를 보관하는 아주 빠른 기억 장소이다. CPU와 거의 동일한 속도를 가진다.
ex) PC : CPU 는 이 PC가 가르키는 명령어를 가져온다.
- 캐시( Cache ) : 레지스터와 마찬가지로 CPU 내부에 존재. 레지스터와 메인 메모리 사이의 속도 개선을 위해 등장.
CPU가 메인메모리까지 접근해서 데이터를 가져오는건 오래걸린다.
가끔 사용하는 데이터는 괜찮지만 자주사용하는 데이터의 경우 이런 방식은 시간 낭비 !
때문에 이런 데이터는 cache에 보관해두고 꺼내 쓴다.
cache 안에 원하는 데이터가 있는경우 cache hit , 안에 데이터가 없는경우 cache miss 라고 부른다.
( cache miss 의 경우 원하는 데이터를 찾기위에 CPU 는 메인메모리까지 가야함 )
- 메인메모리 : ROM / RAM
- 디스크 : secondary memeory 중 하나. 우리는 하드디스크 라고 부른다. CPU는 직접 이 디스크에 접근할 수조차 없다.
- 가상 메모리 : 물리 메모리보다 더 큰 프로그램은 디스크에 위치하게 한다. 즉, 아주아주 큰 프로그램의 일부분만 실제 물리 메모리에 적재한다. → 메모리를 효율적으로 사용할 수 있다.
3. I/O 장치
① I/O 입력과 출력 방법 3가지
- polling , busy waiting : CPU 가 주기적으로 입출력 할 것이 있는지 확인함.
- interrupt : 인터럽트 신호를 device 마다 다르게 주고, 입출력이 끝나면 인터럽트 신호를 통해 CPU가 알 수 있게함.
- 특수한 DMA 칩 이용 : 위의 두가지 방법과 다르게 CPU 가 입출력에 전혀 관여하지 않음. I/O 장치가 메모리에 직접 접근 하도록 한다. 원래 메모리접근 권한은 CPU 권한이므로 I/O 장치는 이 권한을 훔쳐서 사용한다. ( cycle stealing )
※ 컴퓨터 부팅순서
BIOS 개시 → 키보드나 다른 기본적인 장치 테스트 → ISA 와 PCI 스캐닝 → 부트장치결정 → 부트섹터로딩 → 운영체제수행
※ 기억할 것
- 프로세서와 프로세스의 차이점
- 메모리의 계층구조
- 가상메모리와 context switching
- I/O 입력과 출력방법 3가지
'IT&컴퓨터공학 > 운영체제' 카테고리의 다른 글
[운영체제]Chapter02 - 운영체제의 역사 (0) 2020.01.15 [운영체제]Chapter01 - 운영체제란 무엇인가? (0) 2020.01.14 댓글