본문 바로가기

VEDA 복습/리눅스, 리눅스 프로그래밍

VEDA 28일차 - 임베디드 리눅스

반응형

 

foreground : fg, ./a.out

background : bg, ./a.out &

jobs : 현재 수행되고 있는 프로세스 상태를 확인할 수 있다.

 

file descriptor table's index number

fd = open();

 

daemon : 리눅스 상에서 입력, 출력도 하지는 않지만 돌려지는 프로그램, open은 하기는 하지만 log 파일 등에 흔적을 남긴다.

 

IPC(Inter Process Communication) : 프로세스 간 통신

kernel이 제공하는 통신 수단을 이용하여 프로세스 간 통신이 이루어진다.

1) unnamed pipe : 부모 프로세스와 자식 프로세스 간 통신

2) named pipe : 제약없는 프로세스 간 통신

3) message queue : 정해진 큐에 메시지를 넣고 빼는 방식으로 데이터를 교환, FIFO

4) socket : 파이프랑 유사한 파일, 네트워크로 연결된 다른 시스템에서 작동하는 프로세스와 통신할 때 사용

5) 공유 메모리 : 데이터 자체를 공유, 단 message queue와 다르게 deep copy가 이루어 지지는 않는다.

 

동기화 문제:

두 프로세스가 반드시 정해진 타이밍에 데이터를 읽거나 쓸거라는 보장이 없다 -> 사용자가 원하지 않는 동작의 가능성이 있다.

ex) A 프로세스가 쓰기 중에 B 프로세스가 쓰기 동작을 동시에 수행한다면, 사용자가 원하는 데이터가 입력되지 않을 수 있다.

-> 독점적으로 데이터를 사용할 수 있도록 해야함 = 동기화 개념 필요

세마포어 : Down, Up, 변수 개념, 공유 데이터에 대한 소유권을 명확히 함

      새마포어, 바이너리 세마포어, 카운팅 세마포어

 

kill로 시그널을 전송할 수 있다. 

 

변수

set : 쉘변수를 볼 수 있다. $VARNAME

env : 환경변수를 볼 수 있다.

export : shell var -> env var

기본적으로 변수는 대문자이다.

 

오늘은 BASH Shell scirpt를 작성하는 법에 대해서 배웠다.

 

찾은 것!!

https://wikidocs.net/book/2370

 

Bash 쉘스크립트 개발 시작하기

이 책은 처음으로 리눅스로 시스템을 운영하게 되면서 Bash 쉘로 스크립트를 작성하게 되는 개발자를 위해서 도움이 되는 리눅스의 기본 개념과 기본 명령어, 스크립트 작성 Tip을…

wikidocs.net

 

 

 

반응형