2023. 3. 31. 22:08, 학교공부
컴퓨터 시스템의 범위
- 컴퓨터 시스템의 계층
- 응용프로그램
- 운영체제
- 컴퓨터 하드웨어
- 컴퓨터 시스템 계층 구조의 특징
- 사용자는 응용프로그램과 GUI / 도구 프로그램 (툴, 유틸리티) 을 통해 컴퓨터를 활용할 수 있다.
- 하드웨어는 모두 운영체제의 독점적 지배를 받는다.
- 사용자나 응용 프로그램의 하드웨어에 대한 직접 접근이 불가능하다.
- 운영체제를 통해서만 접근이 가능하다.
- 계층 구조로 보는 운영체제의 기능
- 사용자가 하드웨어에 대해서 알지 못해도 컴퓨터를 사용할 수 있도록 한다.
- 응용프로그램과 하드웨어 사이를 중계해준다.
- 응용프로그램 ↔ 하드웨어, 인터페이스
하드웨어 설명
- CPU (중앙 제어 장치)
- 프로그램 코드를 해석하여 실행하는 중앙처리 장치
- 가장 핵심 장치이다.
- 전원이 공급될 때 작동이 시작되고, 메모리에 적재된 프로그램을 실행한다.
- 메모리
- CPU에 의해 실행되는 프로그램 코드와 데이터가 적재되는 공간이다.
- RAM
- 프로그램은 실행되기 위해선 반드시 메모리에 적재되어야 한다.
- 캐시 메모리
- CPU의 프로그램 실행 속도를 높이기 위해서 CPU와 메모리 사이에 빠른 메모리를 설치하게 되어서 탄생하였다.
- 온칩 캐시 → CPU 내부에 만들어진 캐시. (대부분 온칩 캐시를 사용한다.)
- 옵칩 캐시 → CPU 외부에 설치되는 캐시
- 캐시 메모리가 있는 경우엔 CPU는 캐시 메모리에서만 프로그램을 실행한다.
- 캐시는 용량이 작기 때문에 현재 실행할 코드와 데이터의 극히 일부분 만 저장한다.
- 버스
- 하드웨어들이 데이터를 주고받기 위해 0과 1의 디지털 신호가 지나가는 여러 가닥의 선을 다발로 묶어 부르는 용어이다.
- 컴퓨터의 버스 → 도로, 컴퓨터의 데이터 → 자동차
- 버스의 종류
- 주소 버스 → 주소 신호가 지나다니는 버스
- 데이터 버스 → 데이터 신호가 지나다니는 버스
- 제어 버스 → 제어 신호가 지나다니는 버스
- 주소
- 레지스터에 대한 번지수
- 0번지에서 시작하는 양수이다.
- 주소 버스는 주소 값이 전달되는 여러 선의 다발이다.
- CPU는 메모리나 입출력 장치에 값을 쓰거나 읽을때 반드시 주소를 발생시킨다.
- 하드웨어들이 데이터를 주고받기 위해 0과 1의 디지털 신호가 지나가는 여러 가닥의 선을 다발로 묶어 부르는 용어이다.
- 목적에 따라서 버스를 구분한다.
- 시스템 버스
- CPU, 캐시 메모리, 메모리 등 빠른 하드웨어 사이에 데이터를 전송한다.
- 고속도로에 비유된다.
- 입출력 버스
- 상대적으로 느린 입출력 장치들로부터 입출력 데이터를 전송한다.
- 일반 도로 에 비유된다.
- 시스템 버스
- IO 컨트롤러 & 컨트롤 서킷
- 입출력 장치들을 제어하기 위한 여러 하드웨어이다.
- 입출력 장치에게 명령 하달 → 메모리와 입출력 장치 사이에 혹은 CPU와 입출력 장치 사이에 데이터를 전달 중계한다.
- DMAC, 인터럽트 제어장치 등을 포함한다.
- 입출력 장치들을 제어하기 위한 여러 하드웨어이다.
더보기
컴퓨터는 응용소프트웨어, 시스템소프트웨어, 하드웨어 이렇게 볼 수 있다.
운영체제는 소프트웨어와 하드웨어 사이의 중계를 하고, 하드웨어에 대한 독점적인 지배 권한을 갖는다.
사용자는 운영체제를 통해 하드웨어에 대해 몰라도 컴퓨터를 사용 할 수 있다.
하드웨어 → CPU, 메모리, 입출력장치 정도 (폰노이만구조 1940년대)
버스 → 주소버스, 데이터 버스, 제어버스, CPU는 입출력 장치에 값을 쓰거나 읽을때 반드시 주소를 발생시킨다.
시스템 버스와 입출력 버스로 목적에 따라 버스를 구분한다.
I / O 컨트롤러는 입력 및 출력 장치 인 다양한 주변 장치를 연결하고 제어하는 데 도움이 된다.
- CPU
- 능동적 소자이다. 메모리 액세스 시 주소를 발생시킨다. (주소번지에 있는 명령을 가져올 수 있도록 처리를 한다.)
- 32비트 CPU, 32비트 운영체제, 32비트 컴퓨터란 ?
- CPU에 32개의 주소선이 존재하는 것
- CPU의 액세스 범위 : 2^32개의 서로 다른 주소
- CPU가 최대 액세스 할 수 있는 메모리의 크기가 4GB가 된다.
- 한 번지의 공간이 1바이트 이므로, 2^32 개의 주소 = 2^32 바이트 = 4GB
- 32비트 CPU를 가진 컴퓨터는 4GB를 넘어선 영역은 사용할 수 없다.
- CPU에 입출력되는 32개의 데이터 선이 존재한다.
- 한번에 32비트 읽고 쓰기가 가능하다.
- CPU에 32개의 주소선이 존재하는 것
- CPU 명령
- CPU가 해석하고 실행할 수 있도록 하는 기계명령
- C언어나 자바의 프로그램 소스 코드와는 다르다.
- CPU를 설계하는 기업이 명령어들, 명령어 개수, 형태 등을 결정한다.
- CPU의 명령 개수는 수십개에서 수백개가 된다.
- CPU마다 명령 이름, 기계어 코드, 크기, 개수 등이 다르다.
- CPU 사이에 명령들의 호환성은 없다.
- 컴파일된 코드는 CPU사이에 호환성이 없다.
- CPU가 해석하고 실행할 수 있도록 하는 기계명령
- CPU 레지스터
- PC (Program Counter) → 다음에 실행할 명령의 메모리 주소를 저장한다.
- IR (Instruction Register) → 현재 실행하기 위해 메모리로부터 읽어온 명령을 저장한다.
- SP (Stack Pointer) → 스택의 톱 메모리 주소를 저장한다.
- 데이터 레지스터 (data registers) → 연산에 사용되거나 사용될 데이터들을 저장한다.
- 상태 레지스터 (status register) → CPU의 상태 정보나 인터럽트 금지 등의 제어 정보를 저장한다.
- 기타 레지스터 → 페이지 테이블이 저장된 메모리 주소를 가리키는 레지스터 등
- CPU 명령 사이클 → CPU가 하나의 명령을 실행하는 과정 / CPU는 전원이 켜진 후 단순하게 명령 사이클을 반복한다.
스택은 어디에 있는가?
- 프로그램이 실행되기 위해 운영체제에 의해 할당되는 4공간
- 코드 공간 → 프로그램 코드를 적재한다.
- 운영체제도 코드로 이뤄져있다.
- 데이터 공간 → 전역 변수들이 적재되는 공간
- 힙 공간 → 프로그램에서 동적 할당받는 공간
- 스택 공간 → 함수가 호출될 때 매개변수,지역변수 등을 저장한다.
- 코드 공간 → 프로그램 코드를 적재한다.
- 스택
- 메모리의 일부를 스택으로 사용하도록 할당된 공간이다.
- 물리적으로는 존재하지 않는다.
- 운영체제는 각 프로그램에게 스택 공간을 할당시켜준다.
- CPU의 SP 레지스터는 현재 CPU가 실행중인 프로그램의 스택 꼭대기에 주소를 가리킨다.
- 스텍에 저장되는 내용 (함수일 수도 있지만 프로그램일 수도 있다.)
- 함수의 지역변수 (함수 안)
- 함수가 호출될 때 전달받은 매개변수 값들 (매개인자)
- 함수가 실행된 후 돌아갈 주소
- 함수가 의도적으로 저장해 두기 위한 값
- 메모리의 일부를 스택으로 사용하도록 할당된 공간이다.
더보기
CPU → 능동적 소자이다. 메모리 엑세스 시에 주소를 발생한다.
예 : 32비트 , 32비트 운영체제 등 → 32개의 주소선이 CPU에 있다는 뜻 → 액세스 할 수 있는 최대 메모리 크기는 4GB
CPU 명령은 기계명령이다.
CPU 레지스터 → PC , IR , SP , 데이터레지스터들, 상태 레지스터, 기타 여러 레지스터
명령 사이클 → CPU가 하나의 명령을 실행하는 과정. CPU는 전원이 켜진 후 명령 사이클 반복
운영체제 4공간 → 코드 공간: 코드저장 , 데이터 공간 : 변수 저장, 힙공간, 스택공간
컨텍스트 **
- 한 프로그램이 실행 중인 일체의 상황 혹은 상황 정보
- 메모리
- 프로그램 코드와 데이터, 스택, 동적할당 받아 저장한 값
- CPU 레지스터들의 값
- PC ← 코드의 주소
- SP ← 스택의 주소
- 다른 레지스터는 이전의 실행결과나 현재 실행에 사용되는 데이터들
- 메모리
- 축소 정의
- 현재 CPU에 들어있는 레지스터의 값들 (메모리에 저장된 상황 정보는 그대로 있기 때문)
컨텍스트 스위칭 **
- 발생
- CPU가 현재 프로그램의 실행을 중지하고 다른 프로그램을 실행할 때 발생한다.
- 과정
- 실행중인 프로그램의 컨텍스트 → 메모리에 저장 → 새로 실행시킬 프로그램의 저장된 컨텍스트 (CPU레지스터들의 값) → CPU
더보기
컨텍스트 : CPU에 저장된 레지스터들의 값들
컨텍스트 스위칭 : 실행중인 프로그램의 컨텍스트를 메모리에 저장 후 실행할 프로그램의 컨텍스트를 CPU 에 복귀
멀티코어 : CPU에 프로세서 두개 , 2개 프로그램 동시 실행
'학교공부' 카테고리의 다른 글
정보통신 개론 03-27 (정리) 컴퓨터, 부울대수 , 데이터표현 (0) | 2023.04.09 |
---|---|
네트워크 일반 03-22 (정리) OSI 7계층과 프로토콜 (0) | 2023.04.07 |
정보통신 개론 03-20 (정리) 정보통신 시스템의 구성 (0) | 2023.03.31 |
정보보안개론 03-15 (정리) 보안공격 사례와 시스템 보안 관리 (0) | 2023.03.28 |
운영체제 이론 03-14 (정리) 운영체제의 정의와 탄생 배경 (0) | 2023.03.28 |
Comments, Trackbacks