Operating System
운영체제란?
운영체제는 응용 프로그램이나 사용자에게 편리한 인터페이스 환경을 제공하고
그 결과를 돌려준다. 그리고 컴퓨터 시스템의 자원을 효율적으로 관리하는 SW이다.
[인터페이스?]
- 사용자가 컴퓨터를 사용할수 있게 해주고, 그 결과를 알려주는 것
- 자동차의 계기판 같은 느낌
[특징]
1. 컴퓨터의 성능을 향상할 뿐 아니라 자원을 효율적으로 관리
2. 사용자가 직접 자원(하드디스크)에 접근하는 것을 막음으로써 자원보호
3. 사용자에게 편리한 인터페이스 환경과 서비스를 제공
[컴퓨터 하드웨어]
1. 프로세서 (processor)
- CPU(중앙처리장치)
- GPU
- 응용 전용 처리장치
2. 메모리 (Memory)
- 주 기억장치 (RAM)
- 보조 기억장치 (HDD,SDD)
3. 주변장치
- 입력장치 (키보드 / 마우스)
- 출력장치 (모니터 / 프린터)
- 저장 장치
- 네트워크 모뎀
[ 1. Processor ]
[특징]
- 중앙처리장치 (CPU)
- 연산을 수행한다.
- 컴퓨터의 모든 장치의 동작을 제어한다.
[구성]
1. 산술논리 연산장치(Arithmetic and Logic Unit)
→ 데이터의 덧셈,뺄샘,나눗셈, 같은 산술연산과 AND,OR과 같은 논리연산도 한다.
2. 제어장치(Control Unit)
→ 명령어를 해석하여 제어 신호를 보내고 CPU내의 데이터 흐름을 조절한다.
→ ex) 메모리 더해, 곱해, 가져와 등등
[Register]
CPU내부에 있는 데이터 임시보관소
- processor가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리
- 다양한 Register를 통해서 연산이 이루어진다.
[Register_구분]
1. 용도에 따른 분류 ( 전용 / 범용 )
2. 변경 여부 (가시 레지스터 / 불가시 레지스터)
3. 저장하는 정보에 따른 분류(데이터, 주소, 상태)
[Register_종류]
A. 가시 레지스터
1. 데이터(DR) : 함수 연산에 필요한 데이터를 저장한다.
2. 주소(AD) : 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장한다.
→ 기준 주소 레지스터 : 프로그램을 실행할 때 사용하는 기준 주소 값을 저장.
→ 인덱스 레지스터 : `**유효주소**`를 계산하는 데 사용하는 주소 정보를 저장.
→ 스택 포인터 레지스터 : 반환 주소, 프로세서 상태 정보, 서브루틴의 임시변수를 저장.
B. 비가시 레지스터
1. 프로그램 카운터(PC) =instruction Pointer
→ 다음에 실행 할 명령어의 주소를 보관하는 레지스터
2. 명령어 레지스터(Instruction R)
→ 현재 실행하는 명령어를 보관하는 레지스터
→ 제어장치는 IR에 있는 명령어를 해석한 후 제어 신호 발송.
3. MAR(Memoru Address R)
→ 메모리에서 데이터를 가져오거나 반대로 메모리로 데이터를 보낼 때 주소를 지정하기 위해 사용
4. MBR (Memory Buffer Register)
→ 프로세서가 메모리에서 가져온 데이터나 옮겨갈 데이터를 임시로 저장한다.
→ 항상 MAR과 함께 동작한다.
[프로그램_상태_레지스터(Program_Status_Register)]
→ 산술논리 연산 레지스터와 연결되어 있으며 연산결과가 양수인지 음수인지 0이 아닌지 등을 저장.
1. 플래그 레지스터
2. 상태 레지스터
3. 컨디션 레지스터
[2. Memory]
[특징]
- 기억장치 (데이터를 저장하는 장치)
- 위로 갈수록 속도는 빨라지고 가격은 비싸짐. 용량은 적어짐
- 아래로 갈수록 속도는 느려지지만, 용량은 커지고 가격은 저렴해짐
[메모리_종류]
1. 레지스터
2. 캐시(SRAM : 정적 RAM)
3. 메인 메모리(DRAM : 동적 RAM)
4. 보조기억장치 (processor가 직접 접근할 수 없다.)
[주기억장치]
- RAM
- processor가 수행할 프로그램과 데이터 저장
- 디스크 입출력 병목현상(I/O bottleneck) 해소
→ CPU속도와 디스크 속도의 큰 gap을 줄여주기 위해서.
[보조_기억장치]
- 프로그램과 데이터를 저장
- processor가 직접 접근 불가
→ 주변장치로 분류
→ 주기억장치를 거쳐서 접근
→ 가상메모리 : 하드디스크 일부를 main memory 처럼 사용
[메모리_보호]
메모리를 보호하기 위해 CPU는 현재 진행 중인 작업의 메모리 시작 주소를 경계(bound) 레지스터에
저장한 후 작업을 한다. 또한 현재 진행 중인 작업이 차지하고 있는 메모리의 크기,
즉 마지막 주소까지의 차이를 한계(limit) 레지스터에 저장한다. 그리고 사용자의 작업이 진행되는
동안 이 두 레지스터의 주소 범위를 벗어나는 지 하드웨어적으로 점검함으로써 매모리를 보호한다.
[부팅]
→ 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
[System Bus]
[특징]
- 전면 버스(FSB) → 메모리의 작동 속도
- 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
- CPU와 메모리를 연결하는 Sub_system
[폰노이만_구조]
- CPU,메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
- 하드웨어는 그대로 둔 채 작업을 위한 프로그램만 교체하여 메모리에 올리는 방식
- 모든 프로그램은 메모리에 올라와야 실행될 수 있다.
[Controll_Bus]
제어버스에서는 다음에 어떤 작업을 할지 지시하는 `제어 신호`가 오고 간다.
제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정.
▶ 흐름
제어버스 ↔ [제어장치 / 메모리 / 주변장치]
[Address_Bus]
주소 버스에서는 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지
알려주는 `위치 주소`가 오고 간다
Address Bus를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의
최대 용량을 결정한다. CPU와 Memory는 단방향으로 데이터 전달이 가능한 버스를
이용함으로써 주소 전달은 CPU에서 메모리로만 가능
▶ 흐름
메모리 주소 레지스터 → 주소 버스
주소 버스 → 메모리
[Data_Bus]
프로세서와 메인 메모리, 주변장치 사이에서 '데이터'를 전송한다.
데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는
비트 수를 결정하는데 이를 '워드'라고 한다.
▶ 흐름
메모리 버퍼 레지스터 ↔ 데이터 버스
[대역폭(BandWidth)]
→ 한 번에 전달할 수 있는 데이터의 최대 크기
→ Word : CPU가 한 번에 처리할 수 있는 데이터의 최대 크기
→ 레지스터의 크기 = 버스의 대역폭 = 메모리에 한번엔 저장할 수 있는 데이터 크기
[3. 주변 장치 ]
- 프로세서와 메모리를 제외한 하드웨어들
- 입력장치 (키보드 , 마우스)
- 출력장치 (모니터, 프린터, 스피커)
- 저장장치 (USB, CD)