Computer(인강)/시스템 프로그래밍(40)
-
프로세스 생성(fork)
안녕하세요 bannavi입니다^ㅅ^ 오늘은 프로세스 생성(fork)에 대해서 알아볼거에요 바로 시작하겠습니다. 프로세스 기본구조 : TEXT, DATA, BSS, HEAP, STACK BSS, DATA, TEXT는 컴파일 시 실행되고 stack, heap부분은 코드가 실행되면서 줄어들거나 커지거나.. 프로세스 생성 * 기본 프로세스 생성 과정 1) TEXT, DATA, BSS, HEAP, STACK의 공간을 생성 2) 프로세스 이미지를 해당 공간에 업로드하고, 실행 시작 * 프로세스 계층 : 다른 프로세스는 또다른 프로세스로부터 생성 : 부모프로세스, 자식프로세스 -> 모든 프로세스에는 부모프로세스가 있다는 말입니다. 프로세스를 실행하는 시스템콜은 리눅스 계열에서 두가지가 있습니다. 1. fork() 시..
2021.03.08 -
프로세스ID 시스템콜
안녕하세요 bannavi입니다^ㅅ^ 오늘은 프로세스ID 시스템콜에 대해 살펴보겠습니다 바로 시작하겠습니다. 프로세스 관리 관련 시스템콜 * 사전작업 : 우분투 리눅스에 gcc설치(+ vi에디터/한글 설정) getpid()와 getppid() getppid()는 현재 이 함수를, 시스템콜을 호출하는 프로세스의 부모 프로세스의 아이디를 알아오는 시스템콜 * 함수원형 * 실습 코드 자 그럼 직접 쳐볼까요 실습에 적혀있는 코드를 그대로 입력해주시고요 그리고 종료해주시면 됩니다 그리고 gcc를 컴파일 시킵니다. -o를 적으시고 뒤에 실행파일을 적어주셔도됩니다. 그럼 바로 컴파일이 될거고요 ls를 입력해주세요 그럼 권한이 이렇게 들어가 있는 상태로 설정이 됩니다 이것을 실행시킬때는 이렇게 입력하시는것 잊지 않으..
2021.03.08 -
프로세스ID
안녕하세요 bannavi입니다^ㅅ^ 오늘은 프로세스ID에 대해 공부해보도록 하겠습니다 바로 시작하겠습니다! 프로그램 : 바이너리, 코드 이미지, 응용프로그램, Application, 또는 실행 파일 프로세스 : 실행 중인 프로그램(메모리 적재 + 프로세스 상태 정보(PCB) 포함) 스레드 : 1) 리눅스 프로세스는 기본 스레드 포함 2) 싱글 스레드 프로세스 : 기본 프로세스 3) 멀티 스레드 프로세스 : 여러 스레드 존재 프로세스 ID : 1) pid, 각 프로세스는 해당 시점에 unique한 pid를 가짐 2) pid 최대값은 32768 3) 부호형(signed) 16비트 정수값 사용 만일 pid값이 32768을 넘어가게 되면 그제서야 맨 처음으로 넘어가서 1부터 시작하여 아직 안쓰고 있는 pid값을..
2021.03.08 -
ABI와 표준
안녕하세요 bannavi입니다^ㅅ^ 오늘은 ABI와 표준에 대해서 알아볼거에요 바로 시작하겠습니다 API는 하위호환이 지원이 된다. API : 응용 프로그램과 분리된 하위 호환 인터페이스 -> 예: 시스템 콜 래퍼, 입출력 라이브러리 등등 C라이브러리 1) 유닉스 C 라이브러리 libc 2) 리눅스 C 라이브러리 - GNU libc - glibc(지립씨, 글립씨) -> 시스템콜, 시스템콜 래퍼, 기본 응용 프로그램 기능 포함 C컴파일러 설치를 해봅시다 Yes/NO 이런 부분 나오면 과감히 Y눌러주세요 ABI(Application Binary Interface) 1. 응용 프로그램 바이너리 인터페이스 2. 함수 실행 방식, 레지스터 활용, 시스템 콜 실행, 라이브러리 링크 방식 등 3. ABI가 호환되면 ..
2021.03.07 -
시스템콜과 API
안녕하세요 bannavi입니다^ㅅ^ 오늘은 시스템콜과 API에 대해서 살펴보도록 할게요 바로 시작하겠습니다! 시스템 프로그래밍의 기반 요소 1) 시스템 콜(system call) 2) C라이브러리 3) 컴파일러 사용자 영역에서의 시스템 프로그래밍 아하 api가 실행파일과 분리된 경우가 있다는거구나. 장점은 api쪽 라이브러리만 업데이트 시키면 실행파일도 같이 기능이 업데이트 될수도있다.
2021.03.07 -
소프트링크 및 특수 파일
안녕하세요 bannavi입니다^ㅅ^ 오늘은 소프트링크 및 특수파일에 대해서 알아볼거에요 바로 시작해보겠습니다. 먼저 하드링크와 소프트링크의 비교입니다. 하드링크와 소프트링크 둘다 어느 하나 파일을 수정하면, 각 파일 이름으로 동일하나 내용 접근 가능 원본파일이 바뀌면 hardlink와 softlink도 바뀝니다. 다 연결되어 있는거니까요 그리고 원본파일을 삭제했을 때 hardlink는 그대로 나오지만 softlink는 찾을 수 없다고 나옵니다 소프트링크는 원본파일이 없어지면 제 구실을 못하는구나 특수 파일 특수파일은 디바이스를 가리키는 파일이다. #디바이스 1) 블록 디바이스(Block Device) : HDD, CD/DVD와 같이 블록 또는 섹터 등 정해진 단위로 데이터 전송, IO 송수신 속도가 높음..
2021.03.07