CS
-
02. 컴퓨터 구조 두 번째 - 프로그램의 실행과정CS/OS, Computer Structure 2021. 4. 6. 12:58
컴퓨터의 프로그램이 실행되는 과정을 알기위해 조금 더 알아 봤다. 프로그래머가 어떤 프로그램을 짜게 되면, 해당 프로그램은 전처리기 ▷ 컴파일러▷ 어셈블러▷ 링커의 순서를 거쳐 HDD, SSD에 저장된다. 전처리기: C에서 #으로 시작하는 지시자 (#include, #define 등) *Java에서는 전처리기능을 제공하지 않는다 컴파일러: CPU명령어로 번역 어셈블러: CPU의 명령어를 바이너리 코드로 번역 링커: 라이브러리와 결합 Stored Program Concept 위의 과정을 거쳐 HDD에 저장된 프로그램 실행파일은 다음의 세가지 절차를 통해 CPU에서 연산이 이루어진다. Fetch CPU내부로 명령어 이동 (by I/O BUS) Decode 명령어 해석 (by 컨트롤 유닛) Execution ..
-
01. 컴퓨터 구조 첫 번째 - 컴퓨터 구성, CPU의 기본 이해CS/OS, Computer Structure 2021. 4. 6. 12:57
취업을 준비하려다 보니 기본기가 많이 부족 한 것 같아 전공에서 배웠던 Computer Science 부분들을 다시 한번 공부하기로했다. 이러한 부분들이 Web과 연결을 지어 궁금 한 점이 해결될 때까지 파봐야지! 위대한 결심의 첫 날이니 가장 먼저 컴퓨터 구조에 대해 공부했고, 복습 겸 블로그에다 작성해보기로 했다. 컴퓨터 구조에 대해 얘기를 할 때 기본적으로 폰 노이만이 제시한 컴퓨터 구조에서 많이 파생되어 내가 본 강의에서는 CPU, Memory, I/O로 이루어져있다고 한다. CPU - Process 연산을 주로 담당한다. (ALU) - 레지스터에 연산에 필요한 간단한 데이터를 임시 저장한다. A.K.A 캐시 (엄청 빠름) - 데이터의 입출력을 컨트롤한다. (Control Unit) Memory ..
-
01. 이차원 배열 회전CS/Data Structure & Algorithm 2021. 4. 6. 12:56
코딩테스트 문제를 풀다보면 이차원 배열을 시계방향으로 90도 회전할 일이 종종 있다. 00 > 02 01 > 12 02 > 22 10 > 10 11 > 11 12 > 21 20 > 00 21 > 10 22 > 20 위 표를 자세히 보면 A(i, j)에서 90도 회전을 하면 A(m - 1 - j, i)로 넘어간다는 것을 확인 할 수 있다. 해서 이중 for문을 이용해 간단하게 구현할 수 있을 줄 알았는데 array deep copy를 하는 데에서 헤메고 말았다. 분명히 [...arr]로 Deep Copy를 했다고 생각했는데 arr를 변경하자 복사한 배열인 tmpArr가 함께 변경되는 것이었다. 이중 배열이다 보니 안의 배열들은 그대로 shallow copy가 되기 때문이었고, 결국 배열의 각 행을 탐색해 ..