system programming
-
시스템 프로그래밍 실습 5주차 : ProcessesSystem Programming/Ubuntu Linux 2021. 9. 27. 18:22
Processes 목차 Process란? Procecss-related System calls 1. Creating a New Process 2. Destroying a Process 3. Synchronizing with Children 4. Running New Programs Process란? * Program과 Process와 Processor의 차이는? -> Process는 실행 중에 있는 한 프로그램의 한 instance를 가리킨다, 또한 Processor에 의해 실행되고 있는 Program -> Processor는 한 마디로 CPU를 가리키며, Program을 기억 장치로부터 읽어와 구동(데이터를 읽고, 연산 처리)시킨다 => 즉 process는 각 program에 두 가지 abtractio..
-
시스템 프로그래밍 실습 4주차 : File I/OSystem Programming/Ubuntu Linux 2021. 9. 20. 02:36
File I/O 목차 File & Directory UNIX I/O Standard I/O Error Handling for File I/O 각 I/O 장단점 1) unix io 장점 가장 일반적이고 효율적이며 저렴하다. 메타데이터를 제공한다. async-signal-safe (stack을 사용하여 signal handler 안에서도 안전하다. = reentrant) 단점 short count 이 발생할 수 있다. 2) std io 장점 버퍼링을 효율적으로 사용할 수 있다. short count 핸들링이 가능하다. 단점 파일 메타데이터를 제공하지 않는다. not async-signal-safe (시그널 핸들링에 부적합하다.) network socket을 사용할 때 불편한 점이 많이 생긴다. 선택지 std..
-
시스템 프로그래밍 실습 3주차 : Shell & Makefile & GitSystem Programming/Ubuntu Linux 2021. 9. 16. 15:30
Shell & Makefile & Git Shell shell에도 여러 가지 종류가 있고 각 shell마다의 dialect이 있다! ( bash, sh, .... ) Redirection & Pipes - file descriptors : 리눅스 혹은 유닉스 계열의 시스템에서 프로세스(process)가 파일(file)을 다룰 때 사용하는 개념으로, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다. 흔히 유닉스 시스템에서 모든 것을 파일이라고 한다. 일반적인 정규파일부터 디렉토리, 소켓, 파이프, 블록 디바이스, 케릭터 디바이스 등 모든 객체들을 파일로 관리한다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할 때 파일 디스크립터라는 개념일 이용한다. 프로세스가 실행 중에 파일을 Open하면 ..
-
시스템 프로그래밍 실습 2주차 : gcc & gdbSystem Programming/Ubuntu Linux 2021. 9. 16. 15:29
gcc & gdb 기본 Command - man [command] : command에 대한 manual을 보여준다 - pwd [options] - cd [directory] - ls [options] [directory] - ps [options] : process status를 보여준다 - echo [string] : standard output을 보여준다 - cat [options] [files] : file 내용에 대해 보여준다 - head / tail [options] [file] - mkdir / rmdir [directory] - mv [options] [file 1] [file 2] - cp [options] [file 1] [file 2] - rm [options] [file] - date..
-
시스템 프로그래밍 실습 1주차 : 수업 개요System Programming/Ubuntu Linux 2021. 9. 2. 17:36
Linux Commands Shells, text editor, compiler Basuc Linux system calls File I/O, Process management Inter-Process Communication (IPC) Network programming Sockets, I/O Multiplexing Concurrent programming Processes, Threads, Synchronization 1. Text Editor - Vim - Vi는 모든 UNIX 기반 시스템들의 default editor이다. - 리눅스에서의 Vi는 보통 Vim이다 (Vi 향상) - 다음의 command로 Vim을 설치할 수 있다 sudo apt install vim - Vim에는 모드가 6 가지가 ..