컴퓨터 시스템을 구성하는 계층
응용소프트웨어 |
운영체제 |
컴퓨터 하드웨어 |
계층 구조의 특징
- 사용자는 응용프로그램과 GUI / 도구프로그램 (툴, 유틸리티)을 통해 컴퓨터 활용
- 하드웨어는 모두 운영체제의 배타적 독점적 지배 받음
- 사용자나 응용프로그램의 하드웨어에 대한 직접 접근 불허 (반드시 운영체제를 통해서만 접근이 가능)
컴퓨터 하드웨어 구성
CPU
- 프로그램 코드를 해석하여 실행하는 중앙처리장치
- 컴퓨터의 가장 핵심 장치
- 전원이 공급될 때 작동 시작, 메모리에 적재된 프로그램 실행
메모리
- CPU에 의해 실행되는 프로그램 코드와 데이터가 적재되는 공간
- 반도체 메모리 RAM
- 프로그램은 실행되기 위해 반드시 메모리에 적재되어야 함
캐시메모리 (Cache Memory)
- CPU의 프로그램 실행 속도를 높이기 위해 CPU와 메모리 사이에 소량의 빠른 메모리를 설치하게 되었음
- 온칩(on-chip) : CPU 내부에 설치되는 캐시
- 옵칩(off-chip) : CPU 외부에 설치되는 캐시
- 캐시 메모리가 있는 경우 CPU는 캐시 메모리에서만 프로그램 실행
버스 (Bus)
- 하드웨어들이 데이터를 주고받기 위해 0과 1의 디지털 신호가 지나가는 여러 가닥의 선을 다발로 묶어 부르는 용어
- 버스의 종류
- 주소 버스 (address bus) : 주소 신호가 지나다니는 버스
- 데이터 버스 (data bus) : 데이터 신호가 지나다니는 버스
- 제어 버스 (control bus) : 제어 신호가 지나다니는 버스
- 주소 : 메모리, 입출력 장치나 저장 장치 내에 있는 저장소(레지스터들)에 대한 번지
목적에 따라 버스 구분
- 시스템 버스 (System bus)
- CPU, 캐시 메모리, 메모리 등 빠른 하드웨어들 사이에 데이터 전송
- 입출력 버스 (I/O bus)
- 상대적으로 느린 입출력 장치들로부터 입출력 데이터 전송
I/O controllers & control circuit
- 입출력 제어 장치 및 시스템 제어 회로
- 입출력 장치들을 제어하기 위한 여러 하드웨어
CPU
능동적 소자. 메모리 액세스 시 주소 발생
32비트 CPU, 32비트 운영체제, 32비트 컴퓨터의 차이?
- CPU의 액세스 범위 : 2^32개의 서로 다른 주소 (0~2^32-1번지)
- CPU가 최대 액세스할 수 있는 메모리의 크기 : 4GB
- 한 번지의 공간이 1바이트이므로, 2^32개의 주소 == 2^32 바이트 == 4GB
- 32비트 CPU를 가진 컴퓨터에 4GB이상 메모리를 설치할 경우 → 4GB를 넘은 영역은 사용할 수 없음
CPU 명령
- C언어나 자바의 프로그램 소스 코드와 다름
- CPU를 설계하는 기업이 명령어들, 명령어 개수, 형태 등을 결정
- CPU마다 명령 이름, 기계어 코드, 크기, 개수 등이 다름
- 명령들의 호환성이 없다.
mov ecx, 51 ;b9 33 00 00 00 //ecx레지스터에 51저장
add ax, 8 ;83 c4 09 //ax레지스터에 8 더하기
push ebp ;55 //ebp레지스터의 값을 스택에 저장
call _printf ;e8 00 00 00 00 //_printf 함수 호출
ret 0 ;c3 //이 함수를 호출한 곳으로 리턴(0값과 함께)
CPU 레지스터들
- PC(Program Counter) - 다음에 실행할 명령의 메모리 주소 저장
- IR(Instruction Register) - 현재 실행하기 위해 메모리로부터 읽어 온 명령 저장
- SP(Stack Pointer) - 스택의 top 메모리 주소 저장
- 데이터 레지스터들(Data registers) -연산에 사용되거나 사용될 데이터들 저장
- 상태 레지스터(Status reguster) - CPU의 상태 정보나 인터럽트 금지 등의 제어 정보 저장
CPU가 명령을 실행하는 과정
프로그램이 실행되기 위해 운영체제에 의해 할당되는 4개의 공간
- 코드 공간 (code) : 프로그램 코드 적재
- 데이터 공간 (data) : 전역 변수들이 적재되는 공간
- 힙 공간 (heap) : 프로그램에서 동적 할당받는 공간
- 스택 공간 (stack) : 함수가 호출될 때 매개변수, 지역변수 등 저장
스택에 저장되는 내용 : 지역 변수들, 매개변수 값들, 돌아갈 주소, 의도적으로 저장해 두기 위한 값
컨텍스트 (Context)
프로그램이 실행 중인 일체의 상황 혹은 상황 정보
- 메모리
- 프로그램 코드와 데이터, 스택, 동적할당 받아 저장한 값
- CPU 레지스터들의 값
- PC에는 코드의 주소
- SP에는 스택의 주소
- 다른 레지스터는 이전의 실행 결과나 현재 실행에 사용되는 데이터
컨텍스트 스위칭 (Context Switching)
현재 실행중인 프로그램의 컨텍스트를 메모리에 저장 / 새로 실행시킬 프로그램의 저장된 컨텍스트를 CPU에 복귀
728x90
'⚙️ Computer Science > 명품 운영체제' 카테고리의 다른 글
Operating System - 컴퓨터 시스템 계층 구조, 운영체제, 운영체제의 역할, 운영체제와의 관계, 운영체제의 필요성, 운영체제의 기능 (0) | 2023.08.19 |
---|---|
Operating System - 운영체제의 개념, 정의, 배치 운영체제, 다중프로그래밍 (Multiprogramming), 시분할 (TimeSharing Multiprogramming) 운영체제 (0) | 2023.07.10 |
[명품 운영체제] - Chapter02 연습문제 + 복합문제 풀이 (1) | 2023.06.19 |
[명품 운영체제] - Chapter01 연습문제 (0) | 2022.04.07 |