전체 글 138

sar : 프로세스(CPU core) 가 어떤 mode 로 작업 중인가?

설치: >sudo apt-get install sysstat 각 CPU core가 어떤 종류의 처리를 싱행하고 있는지 1초 단위로 측정함 >sar -P ALL 1 중간에 Ctrl+c 를 누르면, 평균 값이 저장 되며, sar은 종료 됨. %user + %nice : user 프로세스 %system : kernel 프로세스 >sar -P ALL 1 1 1초마다 1회만 출력 하도록 하기 무한 loop을 도는 loop 을 background로 실행하고, sar 출력 >./loop & >sar -P ALL 1 1 1초 동안 core 6 가 100% user 프로세스로 동작함 >kill 9082 //loop 를 죽인다. 이번에는 user 프로세스와 kernel 프로세스를 적당이 섞어 쓰도록 다음과 같은 코드를 작..

Linux_system 2022.08.19

strace : 어떠한 system call 이 호출되었는가?

//hello.c #include int main(void) { puts("hello world"); return 0; } >gcc -o hello ./hello.c >strace -o hello.log ./hello >cat hello.log printf("hello world %s\n","Man"); 각종 system call 처리에 걸린 시간을 microsecond 단위로 정밀하가 측정하여 보여 준다. >strace -T -o hello.log ./hello "hello world\n" 문자 처리에 32 microsecond 가 걸렸음을 알 수 있다. 출처 : 실습과 그림으로 배우는 리눅스 구조 , 다케우치 사토루저

Linux_system 2022.08.19

이 분야의 필독서 / 필독 사이트

books System Programming Advanced Programming in the UNIX Environment (APUE) 인사이드 안드로이드 리눅스 커널 심층분석(로버트러브) 리눅스 커널의 이해 (다니엘 보베이) Linux Device Driver Linux Device Drivers, Third Edition [LWN.net] This is the web site for the Third Edition of Linux Device Drivers, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. For the moment, only the finished PDF files are available; we do intend t..

Linux_system 2022.08.19

size_t 와 string::size_type

size_t 는 또는 std에 정의 되어 있다. sizeof() 함수의 return 형 이다. unsigned 데이터 타입으로, 장비가 32bit 이라면, 32bit 으로 표현 가능한 가장 큰 수 장비가 64bit 이라면, 64bit 으로 표현 가능한 가장 큰 수 를 담을 수 있다. string::size_type string.size() 함수의 return 형 이다. string 이 담을 수 있는 최대 문자 개수를 저장할 수 있는 데이터 타입. 역시 장비가 지원하는 가장 큰 값을 담을 수 있다.

Linux_system 2022.08.19

MMIO (Memory-mapped I/O)

CPU가 입출력 장치를 access 할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식을 말함. 전체 메모리의 주소공간에 입출력 장치의 메모리나 레지스터를 메모리로 취급하여 전체 메모리의 일부분으로 특정 영역에 할당하여 배치하는 방식이다. 입출력 장치의 메모리 주소가 나뉘어 있지 않기 때문에 access할 때는 메모리와 같은 주소공간 이므로 같은 기계어 코드로 수행한다.

Linux_system 2022.08.19

node.js ubuntu

https://velog.io/@ywoosang/Node.js-%EC%84%A4%EC%B9%98 우분투 Node.js 설치및 npm 환경구축 우분투 20.04에 Node.js 를 설치하는 세 가지 방법, npm 환경 구축과 REPL 을 이용한 실행 velog.io Ubuntu 에 Node.js 를 설치하는 목적은 다음과 같습니다. 1. SSD를 테스트 하는 Ubuntu server 를 구현합니다. 2. Sever 에는 nvme-cli 와 같은 각종 utility 들이 설치되어 있습니다. 3. 원래는 해당 server 앞에 가서 command line 으로 명령을 내려 실행하고나, 아니면 ssh client 로 접근하여 command line 으로 명령을 내려 실행을 해야 테스트가 가능합니다. 4. 해당 ..

web_fullstack 2022.06.05