쓰레드(THREAD)에 대해 알아보자

Thread Parallel Programming 병렬 프로그래밍 공동의 목적을 달성하기 위해, 다수의 실행 주체가 동시에 작업을 수행하는 방식 실행 주체: Process or Thread 사실 컴퓨터 시스템에서 프로그램을 실행하는 주체는 CPU (or Core)!

IPC에 대해 알아보자

IPC: Signal and Shared Memory IPC: Inter-process communication IPC의 필요성 Many processes are co-operating 서로 협업하는 프로세스: 한 가지 목적을 위해 여러 프로세스가 함께 동작 큰 프로그램의 모듈화, 병렬 작업을 통한 성능 향상, 사용자 편의성 향상 등 예) Game: video and audio processing, background data loading, chatting, etc.

프로세스 관리(PROCESS MANAGEMENT)에 대해 알아보자

Process Management Process Creation 프로세스 생성: fork(2) #include <sys/types.h> #include <unistd.

동적할당(DYNAMIC MEMORY ALLOCATION)에 대해 알아보자

Dynamic Memory Allocation Memory Allocation Volatile and Non-volatile storage devices Primary storage: Main memory 주기억장치로 사용하는 DRAM 등의 휘발성 저장 장치 성능이 높지만, 적은 저장 공간 제공 프로그램 내의 변수와 같이 용량은 적지만 자주 접근하는 자료를 저장 Secondary storage: Storage devices 보조기억장치로 사용하는 HDD, SSD 등은 비휘발성 저장 장치 느리지만, 많은 저장 공간을 제공 시스템 종료 시에도 보관하여야 할 데이터를 적재하고, 시스템 재기동 시 다시 로드 일반적으로 파일(file)의 형태로 데이터를 저장함 Memory 메모리는 한정된 자원 (예.

FILE HIGH-LEVEL I/O에 대해 알아보자

File: High-level I/O I/O Stream Stream: 물줄기, 개울, 시내 I/O stream: 데이터가 흘러가는 것.

FILE LOW-LEVEL I/O에 대해 알아보자

File: Low-level I/O File Volatile and Non-volatile storage devices Primary storage: Main memory 주기억장치로 사용하는 DRAM 등의 휘발성 저장 장치 성능이 높지만, 적은 저장 공간 제공 프로그램 내의 변수와 같이 용량은 적지만 자주 접근하는 자료를 저장 Secondary storage: Storage devices 보조기억장치로 사용하는 HDD, SSD 등은 비휘발성 저장 장치 느리지만, 많은 저장 공간을 제공 시스템 종료 시에도 보관하여야 할 데이터를 적재하고, 시스템 재기동 시 다시 로드 일반적으로 파일(file)의 형태로 데이터를 저장함 파일과 파일 속성 파일: 보조기억장치의 정보저장 단위로 자료의 집합 Collection of data 0부터 시작하는 주소 공간에 1B 단위로 데이터를 저장하고, 접근할 수 있음 파일의 속성 (attribute) 파일은 Data 와 Metadata 로 구성됨 Data: 사용자가 저장하고자 하는 데이터 Metadata: 데이터의 속성이나 특징 등, 저장된 데이터를 설명하기 위한 추가적인 데이터 Metadata 를 주로 file attribute 라고 지칭함 대표적인 Metadata Name, Size, Creation time, Last modified time, Last access time, access control 추가적인 Metadata 사진: 찍은 날짜, 위치, 포함된 사람들 등등 영화: Runtime, 제목, 첫 상영 날짜, 출연 배우 등등 보다 다양한 정보가 요구됨에 따라 파일의 metadata 저장 방식도 발전하고 있음 File Operations 파일에 대해 수행할 수 있는, OS가 제공하는 기본 동작 Basic: open, close, read, write 파일을 사용하기 위해서는 우선 열어야 하고, (open) 사용을 완료한 후에는 닫아야 한다.

SYSTEM CALL에 대해 알아보자

System Call 시스템 프로그래밍 System Call: OS가 제공하는 기능들을 사용하는 것 하드웨어를 제어하거나, 다른 프로세스와의 통신을 수행하거나, 시스템 정보에 접근, 수정하거나, 시스템을 제어하는 기능 등 대표적인 시스템 콜 화면 출력: printf() <- C 라이브러리.

리눅스 내에서 C 프로그래밍에 대해 알아보자

C Programming on Linux Vi 라인 복사 및 삭제 모든 명령어는 insert mode 에서 esc 키를 눌러 일반 모드로 나온 후, 수행 라인 복사 명령 : yy 앞에 숫자를 입력하면, 현재 커서가 위치한 라인을 포함한 아래의 다수 라인을 한번에 “레지스터”로 복사함 라인 삭제 명령 : dd 앞에 숫자를 입력하면, 현재 커서가 위치한 라인을 포함한 아래의 다수 라인을 한번에 “레지스터” 로 복사하고, 제거함 레지스터의 붙여넣기 : p 현재 커서가 있는 곳에서부터 레지스터의 내용을 삽입함 VI Register VI에서 복사한 내용이 임시로 보관되는 공간.

LINUX 유틸리티에 대해 알아보자

유틸리티 찾기 find find 디렉토리 [-옵션] : 옵션의 검색 조건에 따라 지정된 디렉터리 아래에서 해당되는 파일들을 모두 찾아 출력한다.

PROCESS와 REDIRECTION에 대해 알아보자

Process and Redirection Process 프로세스는 실행중인 프로그램이며, 각 프로세스는 유일한 프로세스 번호 PID를 갖게 된다.