본문 바로가기

CS16

Arithmetic instructions Arithmetic instructions 위로 갈수록 사람에게 친화적, 아래로 갈 수록 기계에게 친화적. 한줄당 instruction 하나. 메모리에 저장되어있음. 컴퓨터구조의 큰그림 컴퓨터의 4가지 핵심 부품 CPU (Central Processing Unit) Main Memory (주기억장치, 이하 메모리) Secondary Storage (HDD, SSD 등) Input/Output IO Device (입출력장치) 아직 추가되어야할 게 더 있지만 대략적으로 그린다면 왼쪽과 같은 느낌. (혼공컴운 책 참조) 시스템 버스는 컴퓨터의 4가지 핵심 부품이 서로 정보를 주고받는 통로입니다. 주소 버스 데이터 버스 제어 버스 processor는 CPU의 다른말. 운체에서의 프로세스와 혼용X ! 프로세서(C.. 2023. 9. 5.
LinkedList 정리 (Single, Double, Circular) Linked List List의 종류 배열(Array) 기반 연결(Link) 기반 배열 기반 리스트 장점 특정 위치의 데이터 조회가 빠르다 단점 데이터의 추가, 삭제 비용이 크다 (다 뒤로 밀거나 앞으로 당기거나..) 크기가 고정되어 있다. 맨 앞에도 쉽게 넣고 싶고, 맨 뒤에도 쉽게 넣고 싶은데..? 그럴 때 사용할 수 있는게 연결 기반 (linked) 리스트 ! 연결 기반 리스트의 종류 단방향 연결 리스트 (Linked List라고 하면 기본으로 이것) 양방향 연결 리스트 (Double Linked List) Circular Linked List (원형 혹은 순환 연결 리스트) Circular single Circular Double 연결 기반 리스트 Node Node는 데이터(Item)과 포인터(P.. 2023. 8. 9.
Stack 구현 (Array, LinkedList) Stack LIFO: Last In First Out 리스트의 제한된 형태: 넣고 빼기가 리스트의 한쪽 끝에서만 가능 Notation PUSH POP TOP: 맨 위의 값 리턴. 종류 Array based link based Array based Stack struct stack { var elemensts: [T] = [] var isEmpty: Bool { elemensts.isEmpty } mutating func push(element: T) { elemensts.append(element) } @discardableResult mutating func pop() -> T? { elemensts.popLast() } func peek() -> T? { elemensts.last } } 단순 배열을.. 2023. 8. 4.
[OS] Processes: Process, Process States, Process API 이전글https://codingmon.tistory.com/65 [OS] OS Overview (CPU가상화, 메모리 가상화, Concurrency, Persistence)Virtualizing CPU 오늘날 하나의 컴퓨터에서 돌아가는 프로그램은 매우 많습니다. 지금 당장 이 글을 쓰면서 제 노트북에는 Xcode, Chrome, Notion, Discord, 카카오톡 등등 정말 수 많은 프로그램들이 실행되codingmon.tistory.comProgram소스프로그램에서 컴파일에서 얻은 실행 파일을 말하고, 이것은 HDD, SDD 저장장치에 저장됩니다.저장장치에 저장되어있던 프로그램이 실행되려면 메인 메모리로 loading되어야합니다.어째서???폰노이만 아키텍쳐이기 때문에CPU가 메모리에 있는 기계어로 번.. 2023. 3. 27.