강의

    Computer Architecture - Registers and Instruction Set

    Computer Architecture - Registers and Instruction Set

    목차ARM 데이터 크기, 명령어 셋ARM Register Set명령어 셋VFP, NEON Data sizes and Instruction SetsARM은 RISC 아키텍쳐입니다. 그래서 대부분의 명령어는 싱글 사이클에 실행됩니다. ARM은 32bit load/store 아키텍쳐입니다. 대부분의 내부 레지스터는 32비트 폭을 가지고 있고, 허용되는 메모리 엑세스는 loads / sotres 2가지 경우입니다.ARM에서 사용하는 경우 다음 3가지 크기로 데이터가 쓰입니다.Halfwrod = 16 bits (2 bytes)Word = 32 bits (4 bytes)Double Word = 64 bits (8 bytes)대부분 ARM 코어는 2가지 명령어 셋을 포함합니다.1. 32-bits 크기에 Arm Ins..

    OS - Thread

    목차스레드스레드 라이브러리(POSIX Pthread)프로세스와 스레드에 대한 고찰스레드풀OpenMPTLS(Thread - Local Storage) 스레드(Thread)애플리케이션은 여러 작업(task)를 할 수 있습니다. 디스플레이를 업데이트하고, 네트워크 통신을 하며, 데이터를 가지고 올 수도 있습니다. 이때 여러 프로세스로 각각의 일을 하는 것보다 한 프로세스가 내부에서 여러 실행 흐름, 실행 유닛을 가지는 방식이 더 단순한 코드와 효율성 증대되고 더 가볍습니다. 커널과 많은 프로그램이 현재 멀티스레드 방식을 사용합니다.프로세스 속 스레드는 스택, PC(Program Counter. 레지스터 실행 위치), 레지스터를 제외하고 code, data, files, heap 공간을 공유합니다. 프로세스는 ..

    컴퓨터네트워크 - Application Layer

    컴퓨터네트워크 - Application Layer

    목차Application LayerSocketsHTTP (HTTP/3)WEB Cache(Proxy Server)DNS Application Layer (사용자 공간 User Space)네트워크는 결국 처음부터 끝까지 "프로토콜"에 대한 이야기이고, 애플리케이션 레이어는 애플리케이션, 즉 프로세스(웹 브라우저 등)를 위한 통신 프로토콜 규약에 대한 이야기입니다.Network APP웹 브라우저, 이메일, 멀티 게임, 유튜브 등 스트리밍, VOIP 등등 Network APP은 네트워크를 사용하는 프로그램들입니다.Network APP은 다음 2가지 경우가 있습니다.■Client-Server paradigm (HTTP, FTP..)서버를 사용하는 방식.-서버-Always on host. 항상 호스트가 켜져있습니다..

    OS - Processes

    OS - Processes

    프로세스 (Process) 목차프로세스프로세스 State간단 스레드프로세스 스케줄링Context Switch프로세스 생성프로세스 통신 프로세스 (Process)컴퓨터에서 실행되고 있는 프로그램으로, 하드디스크에 저장되어 있는 프로그램을 메모리에 할당한 상태인 프로그램입니다. 프로그램 = Passive, 프로세스 = Active프로세스의 메모리 영역은 아래와 같은 부분들로 구성되어 있습니다.프로그램 카운터, 프로세서 레지스터Text or Code: 프로그램 코드 저장 부분 - passiveData : 초기값 있는 전역 변수, 정적 변수 - passiveBss : 초기값 없는 전역 변수, 정적 변수 - passiveHeap : 동적할당 변수 공간 - active공유 라이브러리 : 공유 라이브러리 공간Stac..

    Computer Architecture - Overview

    Computer Architecture - Overview

    Computer Architecture1. 소프트웨어 계층 : 크게 3가지로 하드웨어, 시스템 소프트웨어, 애플리케이션 소프트웨어로 구분합니다.OS : 메모리와 저장장치 할당, 입/출력 동작 처리, 애플리케이션 병렬 처리, ...etc컴파일러 : 고수준(High-level) 언어를 바이너리로 된 머신 코드로 변환2. 고수준 언어 → 머신 코드○ 고수준 언어 : C와 같은 언어로 표준화된 규격이 있습니다.○ 어셈블리어 :  머신코드와 1:1 대응되는 저수준 언어입니다. tool 제조사, 아키텍쳐별로 구문(Syntax)이 다릅니다.○ 머신코드 : 기계어로 CPU가 직접 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어입니다.과정 : Compiling, Assembling, Linking, Building(빌드하..

    OS - Structure

    OS - Structure

    컴퓨터 시스템 구조 (Computer System Structure) 하드웨어 (Hardware) : 기본 컴퓨팅 리소스 제공 ▶ CPU, 메모리, I/O 디바이스 운영체제 (Operating System) ▶ 애플리케이션, 사용자가 하드웨어를 더 잘 쓰게 제어하고 조정하는 프로그램. 애플리케이션 프로그램 (Application Programs) : 사용자의 컴퓨팅 문제를 해결하기 위해 시스템 리소스를 어떻게 사용할지 정의된 프로그램. ▶ 워드 프로세서, 컴파일러, 웹 브라우저, 게임 등 사용자 (Users) : 사람, 머신, 다른 컴퓨터 등 운영체제 (Operating Systems) 보편적으로 인정되는 정의는 없으나 OS는 유저가 컴퓨터를 편하게 사용할 수 있도록 하드웨어 자원 배분을 하며하고 사용자..

    Transport Layer - 요약

    Transport Layer - 요약

    * 역할 : Source -> Destination 까지 전송. 메시지를 일정한 크기로 자르고 관리 ○ UDP (User Datagram Protocol) 1. 특징 Unreliable data transfer : 전송이 loss 될 수 있다. 신뢰성 없는 전달 No coneection establishment Simple connection state -> small header size. 매우 단순한 구조 no congestion control error check 2. 왜, 어디에 쓰일까? 왜 쓸까? : UDP는 TCP와 달리 보장된 전달도 아니고, loss가 될 수도 있으며 간단히 생각하면 TCP에서 신뢰성 같은 기능을 모두 없는 프로토콜이지만 계속 꾸준히 쓰이는 이유는 cost가 싸기 때문이다...

    Application Layer - 시험 요약 정리

    Application Layer - 시험 요약 정리

    * 주 목표 : HTTP 이해, DNS 이해 ○ HTTP (HyperText Transfer Protocol) 정말 간단하게 생각하면 Client의 Http request, 그에 대한 Server의 HTTP response.가 끝인 simple한 프로토콜. Protocol = 통신 규약. 약속 * 특징 1. HTTP는 TCP 사용 : Socket을 만들어서 Client - Server. port는 80 사용. 2. HTTP is stateless : state가 없음. server는 just request. protocol이 state를 관리하는건 complex하다. ○ HTTP 통신 2 Types 1. Non - Persistent HTTP : 1request - 1response. TCP 연결 한 번..