전체 글 79

[mano의 컴퓨터시스템 구조] 6장 기본 컴퓨터 프로그래밍

mano의 컴퓨터시스템 구조: 6장 기본 컴퓨터 프로그래밍6.1 개요 대부분 컴퓨터는 포트란 자신이 실행할 수 있는 이진 코드로 번역하는 번역 프로그램(translator program)을 갖고 있다.번역 프로그램은 특정 컴퓨터 하드웨어에 인지되야 하므로 기계 종속적 프로그램이어야 한다.위 표는 사용자의 기호 프로그램을 이진 프로그램으로 번역하는 명령어이다.AND, ADD, LDA, STA, BUN, BSA, ISZ은 메모리 참조 명령어 이다.CLA, CLE, CMA, CME, CIR, CIL, INC, SPA, SNA, SZA, SZE, HLT는 레지스터 참조 명령어이다.INP, OUT, SKI, SKO, ION, IOF는 입출력 명령어이다.6.2 기계어이진코드: 메모리상 실제로 나타나는 형태의 멸령어..

[운영체제 공룡책] 5장 CPU Scheduling

5.1 Basic Concepts단일 CPU 코어가 있는 시스템에서는 한 번에 하나의 프로세스만 실행할 수 있다.멀티프로그래밍의 목적은 CPU 사용률을 최대화하기 위해 항상 일부 프로세스를 실행하는 것5.1.1 CPU – I/O Burst Cycle프로세스 실행 사이클: CPU 실행(CPU burst)과 I/O 대기(I/O burst)가 번갈아 발생. 마지막 CPU burst는 프로세스 종료 요청으로 끝남.CPU burst 분포: 짧은 CPU burst가 많고 긴 CPU burst는 드물며, 분포는 지수적 또는 초지수적.I/O 중심 프로그램: 짧은 CPU burst가 많음.CPU 중심 프로그램: 긴 CPU burst가 적음.스케줄링 중요성: 이러한 분포를 고려해 CPU 스케줄링 알고리즘을 구현해야 함.5..

[C언어로 쉽게 풀어쓴 자료구조] 8장 트리 - Ⅱ

C언어로 쉽게 풀어쓴 자료구조: 8장 트리8.6 레벨 순회큐를 사용하는 순회법루트 노드의 레벨이 1이고 아래로 내려갈수록 레벨이 증가.동일한 레벨의 경우 좌에서 우로 방문void levelOrder(TreeNode *ptr){ QueueType q; init_quque(q); // 큐 초기화 if(ptr == NULL) return; enqueue(&q, ptr); while(!is_empty(&q)) { ptr = dequeue(&); printf("[%d]", ptr->data); if(ptr->left); enqueue(&q, ptr->left); if(ptr->right) enqueue..

[데이터 통신과 네트워킹-TCP/IP프로토콜 기반] 4장 근거리 통신망: LAN

데이터 통신과 네트워킹-TCP/IP프로토콜 기반: 4장 근거리 통신망: LAN4.1 이더넷4.1.1 표준 이더넷(10Mbps)7개의 필드로 구성프리앰블(Preamble): 수신 시스템에 프레임이 오는 것을 알려주고 동기화되지 않은 경우 시계를 동기화할 수 있는 0과 1이 반복하는 7바이트(56비트)가 들어 있다. 경고와 타이밍 펄스만 제공시작 프레임 지시기(Start frame delimiter (SFD)): 프레임의 시작을 알린다. 목적지 주소(Destination address (DA)): 목적지 지국이나 패킷을 수신하는 지국의 링크층 주소를 갖는다.발신지 주소(Source address (SA)): 보내는 송신자의 링크층 주소를 갖는다.유형(Type): 프레임 내에 캡슐화된 패킷에 대한 상위 계층 ..

[mano의 컴퓨터시스템 구조] 5장 기본 컴퓨터의 구조와 설계

mano의 컴퓨터시스템 구조: 5장 기본 컴퓨터의 구조와 설계5.1 명령어 코드저장 프로그램 구조컴퓨터의 가장 간단한 구성은 한개의 프로세서 레지스터를 두 개의 부분으로 구성된 명령어 코드를 사용하는 것이다.한 부분은 실행할 연산, 다른 한 부분은 레지스터에 저장된 메모리내 주소를 기술4096은 방의 개수, 16은 방의 크기를 의미4096*16은 16비트의 방이 4096개 존재하는 메모리를 의미간접 주소직접주소(Direct address): 피연산자의 내용이 담고 있는 장소의 주소를 저장하고 있는 메모리 워드의 주소간접주소(Indirect address): 주소의 내용을 담고 있는 장소의 주소를 저장하고 있는 메모리 워드의 주소(a)는 3비트의 연산 코드와 12비트의 주소, I로 표시되는 간접 주소 모드..

[운영체제 공룡책] 4장 Threads &Concurrency

4.1 Overview스레드는 스레드 ID, 프로그램 카운터(PC), 레지스터 세트 및 스택으로 구성되는 CPU 활용의 기본 단위이다. 4.1.1 Motivation멀티스레드의 개념대부분의 현대 소프트웨어는 여러 스레드로 구성된 멀티스레드 방식으로 동작.하나의 프로세스 내에서 여러 작업을 병렬로 처리하여 효율성을 높임.  멀티스레드와 멀티코어 시스템:멀티스레드는 멀티코어 CPU에서 병렬 처리를 활용하여 CPU 집약적인 작업을 동시에 수행 가능.데이터 마이닝, 그래픽 처리, 인공지능 등에서 병렬 처리로 성능 향상.멀티스레드의 효율성:단일 스레드 웹 서버의 경우 하나의 클라이언트 요청만 처리 가능 → 대기 시간이 길어짐.전통적인 방식인 프로세스 생성은 리소스와 시간이 많이 소모됨.멀티스레드 방식에서는 클라이..

[C언어로 쉽게 풀어쓴 자료구조] 8장 트리 - Ⅰ

C언어로 쉽게 풀어쓴 자료구조: 8장 트리 8.1 트리의 개념계층적인 자료를 표현하는데 적합한 자료구조 차수: 어떤 노드가 가지고 있는 자식 노드의 개수계층에 따라 부모, 자식, 형제, 자손 등 관계가 만들어짐 8.2 이진 트리 소개모든 노드가 2개의 서브 트리를 가지고 있는 트리를 이진 트리(binary tree)라고 한다.공집합이거나 루트와 왼쪽, 오른쪽 서브 트리로 구성된 노드들의 유한 집합으로 정의된다. 이진 트리의 성질n개의 노드를 가진 이진트리는 정확하게 n-1의 간선을 가진다.높이가 h인 이진 트리의 경우, 최소 h개의 노드를 가지며 최대 (2^h) - 1 의 노드를 가진다.8.3 이진 트리의 표현https://seongkyun.github.io/data_structure/2019/08/01..

[C언어로 쉽게 풀어쓴 자료구조] 7장 연결리스트 - Ⅱ

C언어로 쉽게 풀어쓴 자료구조: 7장7.1 원형 연결 리스트마지막 노드가 첫 번째 노드를 가리키는 리스트이다.하나의 노드에서 다른 모든 노드로의 접근이 가능하다. 원형 리스트의 처음에 삽입ListNode* insert_first(ListNode* head, element data){ ListNode *node = (ListNode *)malloc(sizeof(ListNode)); node->data = data; if (head == NULL) { head = node; node->link = head; } else { node->link = head->link; // (1) head->link = node; // (2) } return head; // 변경된 헤드 포인터를 반환한다. }새로운 ..

[데이터 통신과 네트워킹-TCP/IP프로토콜 기반] 3장 데이터 링크층

데이터 통신과 네트워킹-TCP/IP프로토콜 기반: 3장 데이터 링크층3.1 개요3.1.1 노드와 링크노드(node): 두 종단 호스트와 라우터를 노드로 표현링크(link): 노드 사이의 네트워크를 링크로 표현3.1.2 링크의 두 가지 유형점-대-점(point-to-point link)링크는 서로 연결된 2개의 장치가 전용으로 이용한다. ➡️ 일반 가정집 전화 브로드캐스트 링크(Broadcast link)링크는 여러 장치의 쌍들이 공유된다.➡️ 휴대폰 3.1.3  2개의 부계층 데이터 링크 제어(DLC, Data Link Control)점-대-점, 브로드캐스트에 연관된 공통 사항 다룸 매체 접근 제어(MAC, Media Access Control)브로드캐스트 링크에 관한 사항 다룸3.2 데이터 링크 제어 ..