프로세스(process)란 ? 운영체제로 부터 시스템자원을 할당 받은 작업단위 *실행중에 있는 프로그램 특징 프로세스 내부에는 최소 하나의 스레드 를 가지고 있는데, 실제로는 스레드 단위로 스케줄링을 한다. *스케줄링 : CPU가 할당 순서 및 방법을 결정하는 일. 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터프로세스라 불린다. 프로세스는 독립된 메모리를 할당 받는다. 프로세스가 메모리를 관리하기 위해 이 공간들을 어떤 구조로 관리하는데, 이를 프로세스 주소 공간이라고 부른다. 프로세스 주소 공간은 Code, Data, Stack, Heap 으로 구성된다. Code: 코드 자체를 구성하는 메모리 영역(프..
기능설명 Merge Conflict(병합 충돌) Merge (병합) 하는 과정에서 같은 파일 수정되면 Merge conflict(병합 충돌) 이 발생합니다. 중요*당황하지 말고*중요 충돌을 파악할 수 있도록 내용을 고쳐서 충돌 내역을 보여주는데 최종적으로 반영할 내역으로 고친후 Merge Commit 하면 된다 Tracking (추적 / 연결) 서버로부터 저장소를 clone 하면 Git은 자동으로 master 브랜치를 origin/master 브랜치의 트래킹 브랜치로 만듭니다. 트래킹 브랜치를 직접 만들 수 있는데 리모트를 origin 이 아닌 다른 리모트로 할 수도 있고, 브랜치도 master 가 아닌 다른 브랜치로 추적하게 할 수 있다. Push 와 Pull 은 기본적으로 추적되고 있는 브랜치를 기준..
깃허브를 사용하는 이유는 버전관리 !!!! 때문이죠 버전관리란 :프로젝트 업데이트 상태를 정리한것 언제 무엇이 어떻게 바뀌었는지 상태를 정리한것 Issue (이슈) 회사의 모든 작업 을 말한다. ex)버그, 오류, 새로운기능, 작업검토 요청 등 기능설명 Commit (올리기) project의 상태를 저장(기록)하고 조회한다.(푸시 전 임시저장) 버전관리를 하는 이유는 나 이외에도 다른 사람도 보기 때문에 누가 언제 무엇을 바꾼지 커밋메세지에 요약 해 둔다. Clone (복제) 원격repo(원격 저장소)를 내 컴퓨터에서도 사용할 수 있도록 초기 다운로드 하는 기능 Pull (가져오기) 원격repo의 commit들을 로컬 repo의 commit들에 합치는것 작업 전 commit 된 파일들을 가져와서 작업 한..
해쉬 (Hash) 해쉬함수를 사용하여 색인을 버킷이나 슬롯의 배열로 계산한다. 데이터의 검색과 저장이 아주 빠르게 진행된다 여기서 헤드를 셋팅하는건 자료구조 마다 다르니 잘 기억 하도록 하자 ! 시작 ! class Dict: def __init__(self): self.items = [None] * 8 #테스트할 배열 8개를 생성함 기능 ! put() : 받은 키 벨류값을 저장 def put(self, key, value): index = hash(key) % len(self.items) #해쉬값(랜덤)키로 받은 임의의 숫자를 #배열의 최대길이로 나눈 값을 인덱스번호로 저장 self.items[index] = value #위에 생성한 인덱스 번호에 데이터값을 넣어준다 return get() : 받은 키로..
큐 (Queue) 한쪽에서 들어가면 반대쪽으로 나온다!! (First In First Out : FIFO 삐뽀ㅋ) 큐는 데이터를 넣고 뽑는걸 자주하는 자료구조이다. 스택과 유사하게 구현이 가능하다. *)스택과는 다르게 큐는 시작과 끝의노드를 전부 가지고 있어야 한다. 주문들어온 순서대로 처리 해야할 때 사용한다. ex) 웨이팅 여기서 헤드를 셋팅하는건 자료구조 마다 다르니 잘 기억 하도록 하자 ! *)스택과는 다르게 큐는 시작과 끝의노드를 전부 가지고 있어야 한다. 시작 ! class Queue: def __init__(self): self.head = None self.tail = None 기능 ! enqueue() :마지막 데이터에 새로운 데이터를 삽입한다. def enqueue(self, value..
스택 (Stack) 게임의 그 스택이 맞다 계속 쌓이는 구조이다(Last In First Out : LIFO 리뽀) ex) 컴퓨터 되돌리기 (Ctrl + z) 여기서 헤드를 셋팅하는건 자료구조 마다 다르니 잘 기억 하도록 하자 ! 시작 ! class Stack: # 스택 생성 def __init__(self): self.head = None 기능 ! push() : 맨 위에 데이터 넣기 def push(self, value): # 헤드 교체 new_head = Node(value) # 들어온 밸류를 새로운 헤드에 담기 new_head.next = self.head # 새로운 헤드의 다음 노드에 현재 헤드 옮기기 self.head = new_head # 새로운 헤드를 헤드노드로 지정 pop() : 맨 위의..
파이썬은 배열과 링크드 리스트 두가지 종류의 배열(?)이 있다고 한다 ㅎㅎ...후 1. Array 특징은 이러하다 [0] - [1] - [2] - [3] - [4] - [5] - [6] - [7] 8개의 배열에서 +1개를 더 추가 하려고 하면 [] - [] - [] - [] - [] - [] - [] - [] - [] 0 1 2 3 4 5 6 7 8 9개의 방을 만들어준 후 복사 이동 해야 한다. 한번 만들어진 배열은 새로 추가 하려면 새로운 배열을 만든 후 이동 해야 한다 2. Linked List # 처음 상태 내 위치 train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"] # 1번 이동 내 위치 train_compartments..
이번 주제의 CPU 란 ? CPU == 머리 (Central Processing Unit)중앙제어장치 N개의 레지스터 로 이루어진다 = 1코어 > ex) 이것의 N개가 듀얼코어 쿼드코어 CPU는 왜 발전되어야 하나 무어의 법칙을 이겨내기위해 / 무어요 ? *무어의 법칙 ? = 1년에 컴퓨터 성능이 2배 늘어난다 라는 법칙 - 하드웨어의 발열과 성능의 한계를 이겨내기위함 !! *멀티코어가 탄생하게된 배경* 코어1개의 성능향상엔 본질적인 한계가 있다. 그리하여 멀티 코어가 탄생 함. 한개가 존나 세지는데는 한계가 있으니 한개 더 데려온다. CPU의 구조 ALU : 산술 / 논리 연산장치 CU : 컨트롤유닛 데이터 흐름통제 Register Set : CPU 내부기억 장치 로 구성 되어있다. CPU가 하는일 F..