<< 복습 >>
^ / ~
- main에서 새로운 브랜치 만들고
- 작업 하면서 커밋 및 푸시
- 작업 끝나면 Pull Request
- 코드 리뷰
- 리뷰 끝나면 approve해서 main으로 merge
만약 merge 하다가 남의 것을 날렸으면 reset하고 다시 merge
<< 220421 >>
빅 엔디안 : 1000 (큰 자리수를 먼저) -> 네트워크 장비에 주로 사용
리틀 엔디안 : 0001 (작은 자리수를 먼저) -> 대부분의 컴퓨터 방식
cache hit : 필요한 캐시가 있을때
cache miss : 필요한 캐시가 없을때
하드디스크 -> 디스크캐시 -> 메인 메모리 -> 캐시 -> CPU
ALU(산술 논리 장치) : 산술 계산, 불리언 대수, 기타 연산을 한다
레지스터 : CPU가 데이터를 저장할 때 사용
피연산자와 연산코드를 받아 결과와 조건코드를 생성
명령코드의 집합 -> 명령집합(Instruct set)
CISC / RISC
제어장치는 명령코드와 피연산자를 메모리에서 가져와서 ALU에게 어떤 작업을 수행할지 알려주고, 결과를 메모리에 돌려준다.
폰 노이만 : 현재 대부분의 컴퓨터 구조
하드디스크에 명령어를 저장 해놓은 것
어학 단어 뜻 : 일정, 순서, 절차 들을 모아 놓은 것
뭔가를 실행하려면 메인메모리까지 불러와야 함.
하드디스크에서 불러오면 메인 메모리에 켜지고, 프로그램이 다른 것으로 바뀌는데 그것을 Process(프로세스)라고 한다.
프로세스
실행되는 프로그램
텍스트(코드) : 우리가 작성한 명령 코드들이 들어가는 공간(기계어)
데이터 : 정적 데이터가 들어감
힙 : 동적 할당 공간
스택 : 정적 할당 공간 (우리가 작성한 변수)
프로그램 더블클릭 -> 프로세스 변경 -> 위 4가지 중에 하나로 처리
실제 코드가 실행되는 곳
CPU에 보내지는 내용은 스레드의 내용
한개의 프로세스는 무조건 메인스레드는 하나만 있음
멀티스레드의 경우 스택은 따로 있지만 힙, 데이터, 텍스트는 공유함
멀티스레드에서 같은 작업을 실행할 경우 결과값이 예상값이랑 달라질 경우가 있음(Race Condition)
이를 해결하기 위해 스레스 작업 순서를 정해주는 작업을 스레드 동기화 라고 한다.
- 뮤텍스(Mutex) : 상호 배제 영역
JUMP를 과다 사용으로 인해 스파게티 코드가 만들어졌다.
마가렛 헤밀턴이 어셈블리어로 우주선을 발사.
Type : 비트를 해석하는 방법 + 그에 적용할 수 있는 연산
Primitive Type
Built-in Type
User-defined Type
Control Statement
if / else / switch
for / while / do while
Fuction (수학적 : 정의역에 있는 어떤 삾을 대입시켰을때, 그에 대응 되는 공역의 값이 나오는것)
Core