반도체 : 논리 연산에 따라서 전기가 흐를 수도(도체) 아닐 수도(부도체) 있어서 반도체
<덧셈>
반 가산기 : 2개의 bit 연산 ( 1개의 Carry, 자릿값 표시기 )
전 가산기 : 3개의 bit 연산 ( 1개의 Carry )
<뺄셈>
보수를 덧셈하는 방식
2진수의 보수는 not 인버터로 구현가능
<곱셈>
왼쪽으로 Shift 해주고 0으로 Padding해준다. 그리고 자릿수 넘어가는 Overflow는 버린다.
<나눗셈>
오른쪽으로 Shift 해주고 0으로 Padding해준다. 그리고 자릿수 넘어가는 Overflow는 버린다.
피제수가 제수보다 작아질 때까지 뺄셈을 하게되는데, 0을 제수로 사용하면, 무한정뺄셈 연산이 진행되어 cpu 터질 수 있다.
<연산과정>
CPU : 연산이 목적(비메모리)
RAM : 저장이 목적(메모리) / 1차 메모리(휘발성) : RAM, 2차 메모리(비휘발성) : SSD, HDD
1. CPU가 RAM에서 데이터를 가져온다.
2. CPU의 임시 메모리 격인 Register에 그 데이터를 임시 저장한다.
3. Register에 있는 값들을 ALU를 통해 연산한다.
4. 연산한 값을 다시 RAM에 보내 저장한다.
<1차 메모리 : RAM>
RAM에는 메모리 방 주소가 있는데, 32비트라고 하면, 42억 9천개의 방을 쓸 수 있다는 것.
이는 4천2백 바이트인 것이고, 이를 4기가 바이트라고 한다.
즉, CPU는 64비트인데, 윈도우(OS)를 32비트를 설치했다면, 그 차인 2의 32승인 4기가 바이트의 메모리만 사용할 수 있다.
<CPU 내부에서 저장공간을 관리하는 방법>
L1-3 캐쉬 메모리 : 다음 연산에 필요한 데이터들을 RAM에서 '예상'하여 옮겨놓은 데이터들의 임시 저장소
레지스터 = 책상 vs 캐쉬메모리 = 책장
<2차 메모리 : HDD, SDD>
T(트랙, 아파트 동)과 S(섹터, 아파트 호수)로 구성되어있음
한 섹터 당 대개 512바이트의 공간을 가지고 있음
한 섹터에 몇 십만 번 Overwrite하게 되면, Bad Sector 가 되는 경우가 있다.
한 트랙에 이어진 섹터들을 이어 붙여주는 것 = 디스크 조각 모음(I/O속도가 빨라짐, 요새는 OS가 알아서 잘함)
<파일시스템, NTFS>
File Allocation Table(FAT)은 쉽게 말해, Track/Sector/파일명/D 의 컬럼으로 테이블이 구성되어있는데, 파일 삭제는 실제로 삭제하는 것이아니라 삭제되었다고 마킹한다.
그래서 복원 sw 사용 시, 마킹된 파일들을 찾아서 복원할 수 있는 것.
0번 트랙, 0번 섹터는 OS 부트로더가 저장되어 있다. = 부팅
(바이러스 중 부트로더에 Overwrite를 유도하여, os 부팅을 방해하는 방식도 있다.)
-하드 포맷 : FAT의 모든 데이터를 초기화한다.
-소프트 포맷(빠른 포맷) : 메타데이터만 초기화한다. 어차피 실제 HDD에는 overwrite하면 되는 거니깐
SSD = 칩 vs HDD = 자기디스크 (미디어만 다를 뿐이지, S와 T로 구성되어 관리되어지는 것은 HDD나 SSD나 다를 게 없다.)