Context Switching 이란? OS (Operating System) 의 Scheduler 가 우선순의에 의해 기존에 실행되고 있는 Porcess 를 미루고 새로운 Process 로 교체해야할 때 Process 상태 값을 교체하는 작업 (Process 기준의 설명) CPU (Control Processing Unit) 가 어떤 Process 를 실행하고 있을 때, Interrupt 요청에 의해 OS (Operating System) 의 Scheduler 가 더 높은 우선순위의 Proecss 를 실행해야 한다면 Scheduler 가 Register 에 저장된 기존 Process 정보나 상태를 Kernal 내부에 존재하는 PCB (Process Control Block) 에 저장하고, 새 Proce..
Process (프로세스) 의미 Program이 실행 후 작동하고 있는 상태일 때, 컴퓨터에서 연속적으로 실행되고 있는 '동적인 상태'의 Program Program을 실행하면 OS가 메모리 등 필요한 자원을 할당해주어 "Process"가 된다 할당받는 System resource의 예 독립된 메모리 영역 - Code, Data, Stack, Hack 구조 운영에 필요한 주소 영역 CPU 시간 Windows 작업관리창에 표시되어 있는 Program들 (실행 중) 특징 독립된 메모리 영역 할당 - Code, Data, Stack, Hack 구조 각 Process 는 별도의 주소 영역에서 실행되며, 독자적인 메모리 영역을 갖기 때문에 Process 간 메모리 영역의 공유는 불가 다른 Process 의 자원에..
웹3.0의 등장배경 웹1.0 'Tim Berners-Lee'가 월드 와이드 웹을 공개한 1991년부터 2004년까지 웹1.0의 시대였다. 웹 1.0은 소수가 제공하는 콘텐츠를 다수의 이용자가 읽는 형태였다. 즉, 읽기 만 가능했고 상호작용이 없었다. 웹2.0 웹1.0 이 플랫폼의 형태로 발전하면서 웹 2.0의 시대가 열렸고 스마트폰의 보급으로 한 차례 더 진화한다. 이용자들은 직접 컨텐츠를 생산, 공유하면서 적극적으로 참여하기 시작했다. 웹2.0에 대한 문제제기 웹2.0 플랫폼 사업자들은 웹 환경을 제공하는 대신 이용자의 데이터와 소유권을 가져 갔다. 결과, 웹2.0 의 중앙집중화가 심해진다. 그 와중에 개인정보 유출 사건 등을 발단으로 개인 정보의 가치와 중요성, 보안에 대한 사회적인 인식이 강화되는 ..
iPerf란? iPerf - The TCP, UDP and SCTP network bandwidth measurement tool iPerf - The ultimate speed test tool for TCP, UDP and SCTPTest the limits of your network + Internet neutrality test What is iPerf / iPerf3 ? iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of iperf.fr 공식 소개글 The iperf series of tools perform active measurement..
Newtwork 관련 utility ip IP 주소 설정 및 확인 가능 /*설치*/ apt install iproute2 /*IPv6 확인*/ ip -6 addr show /*IPv6 추가*/ ip -6 addr add / dev /*IPv6 제거*/ ip -6 addr del / dev ifconfig 네트워크 인터페이스의 설정 및 정보를 확인 할 수 있다 Ubuntu 18.04 에는 설치가 되어 있지 않다!! Network interface name 은 version 에 따라 다르다 (iperf3 등을 위해 확인 필요) 초기: eth 최근: ens, enp 등 /*설치*/ apt install net-tools /*IP 확인*/ ifconfig /*IPv6 추가*/ ipfconfig inet6 add..
API API (Application Programming Interface) 는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 할 수 있게 만든 인터페이스를 뜻한다. 특정 사이트에서 특정 데이터를 공유할 경우 어떤 방식으로 요청해야 하는지, 어떠한 데이터를 제공 받을 수 있을지에 대한 규격들을 의미한다. 사용 방법과 용도에 따라 분류하면 개방형(open API)과 폐쇄형(closed API) 가 있다. 기상청의 open API 를 보면 낙뢰정보, 태풍정보, 동네예보통보문 등의 다양한 정보를 제공하고 있다. 이 때 정보의 포맷은 XML, Json 이다. 이런 식으로 지신이 가지고 있는 정보를 제공하기 위해 어떤 방식으로 통신할 것인지에 대한 규격을 API 라 한다. R..
논문 리뷰의 목적 나의 목적은 크게 2가지다. 1️⃣ 관련 분야의 최신 동향을 파악하자 (Computer vision + Deep Learning) 2️⃣ 개발자라면 Project 에 적용하자 하지만 해본 적은 없고 막무가내로 하자니 고생할 게 뻔하고... 그래서 구글신에 물었다! 이제 많은 꿀팁들의 공통점을 모아 정리해보자 잘못된 부분이나 팁이 있다면 댓글로 조언 부탁드립니다 🙏 리뷰하려면 리뷰할 논문을 잘 찾아야지 리뷰 논문으로 감을 잡자 리뷰논문(Review Paper) 특정 주제에 대해 출판된 문헌을 비평하고 문석하는 글 주제에 대한 다양한 연구들 간의 공통점, 상반되거나 다른 결과의 이유와의 불일치를 분석 원본 논문의 요약을 포함함 리뷰 논문은 핵심 요약집이다. 약 100 ~ 200 개의 논문은..
5. Make 빌드 시스템 1 Build - 한번에 .c 로 빌드하지 말고 각각의 obejct 파일을 만들고 링킹해서 실행파일을 만드는 것이 효율적이다!! object 만들기 실행 파일 만들기 Make 자동 빌드 도구!!! Makefile 이 있어야 사용 가능 >> kay-dev.tistory.com Suffix Rules Suffilc Rules (확장자 규칙)은 미리 정의해 놓은 일반화한 기술 파일 항목을 의미한다. Suffix Rules 1 OBJS = test1.o test2.o test3.o CC = gcc #CC = arm-gcc CFLAGS = -g -O0 -Wall # flag for compile LDFLAGS = -static # flag for linker test: ${OBJS} e..
Build - 한번에 .c 로 빌드하지 말고 각각의 obejct 파일을 만들고 링킹해서 실행파일을 만드는 것이 효율적이다!! object 만들기 실행 파일 만들기 Make 자동 빌드 도구!!! Makefile 이 있어야 사용 가능 >> Makefile 을 만들 줄 알아야 한다는 뜻 아래 예시는 빌드 후 파일을 수정했을 때 'make' command 만으로 자동 빌드해준 결과 make name 만 make 해줌 (name 없이 make 해주면 default 가 실행됨 / default는 첫 target) Makefile 만들기 # 첫 target(default) test: test1.o test2.o test3.o #target: prerequisites (만드려는 파일: 만드는데 필요한 의존파일) ech..
Linking 링킹의 역할 Library 연결 (포함X) Address mapping (Embedded 에서는 mapping 까지 고려해야 함) 링킹의 종류 Static Linking 리눅스는 Static Library 를 사용 (lib.a) Linker 가 library 를 통채로 넣는 것 (Embedded or RTOS 등에서 사용) Dynamic Linking 리눅스는 Shared Library 를 사용 (lib.so / shared object) dynamic linking 목적 메모리 낭비를 방지 실행 파일을 만들 때, 링크할 라이브러리 중 일부만 사용한다면 모두 포함해서 컴파일하는 것은 낭비 컴파일할 때는 전체를 넣는 것이 아닌 Linking 할 Library 의 정보만 추가해준다 (direc..
GNU 오픈 개발도구 활용 기법 C 실행파일의 빌드 절차 * 빌드 에러가 발생하면 아래 과정들을 하나씩 확인해서 어떤 문제인지 확인하는데 사용할 수도 있다!! cpp (c preprocessing, c 전처리) #include 등 실제 c 문법이 아닌 부분을 바꿔줌 결과물: .i (전처) 중간확인 방법 gcc -E : 전처리까지만 진행하고 결과 출력 gcc -E > : 전처리까지만 진행하고 에 저장 cc1 (c compiler) C 코드를 assembly 코드로 바꿔줌 결과물: .s 중간확인 방법 gcc -S : 컴파일까지만 진행하고 .s 파일 생성 (전처리는 진행하나 결과는 저장하지 않음) as (assemble) binary를 object 파일을 만듦 (아직 실행할 수는 없음) Assembly lan..
Shell shell 사용 Section 번호 8영역 설명 1 실행 가능한 프로그램 또는 쉘 명렁어 2 시스템 콜 (System Calls) 3 라이브러리 콜 (Libaries Calls) 4 특수 파일 (Specail files) 5 파일 형식과 규칙 (File format & conventions) 6 게임 (Games) 7 개요, 규칙 및 기타 8 슈퍼 유저 및 시스템 관리 명령 9 커널 루팅 (Kernel routines) shell 종류 shell 의 종류 특징 프롬프트 bash Bourne Again shell 최초로 개발된 shell 인 Boure shell 의 변종 리눅스에서 가장 많이 사용되는 IEEE POSIX 호환이면 Boure shell과 호환되는 shell 로 GNU 프로젝트에 의..