목록유닉스 (6)
dev_eun
1. pipe pipes pipe는 유닉스 시스템 IPC에서 제일 오래되었고, 모든 유닉스 시스템에서 지원한다. 가장 간단한 interprocess communication 메커니즘 예시 $ who | wc -l who 명령어의 standard output이 pipe write로 변경됨 wc 명령어의 standard input이 pipe read로 변경됨 pipe() int pipe(int filedes[2]); status return value success 0 error -1 arguments filedes index desc 0 read 1 write FIFO 기준 lseek()이 pipe에서 동작하지 않기 때문에 이 순서는 변경할 수 없다. 2가지 제한 half duplex(read하는 프로세스..
1. Introduction Signal 개념 프로세스에게 이벤트 발생을 알리는 소프트웨어 notification or interrupt 비동기적 이벤트를 핸들링하는 방법을 제공 signal인지 아닌지 확인할 수 있는 변수는 없다. 모든 signal은 "SIG" 로 시작하는 자신의 이름을 가지고 있다. 에 정의되어 있다. signal을 생성할 수 있는 수 많은 조건들이 있다. signal 생성 : signal이 유발하는 이벤트가 발생하였을 경우 signal 전달 : 프로세스가 signal 기반으로 액션을 취할 경우 signal lifetime : 생성과 전달 사이의 간격 pending : 생성은 되었지만 전달은 아직 되지 않은 signal 상태 caught : signal이 전달되어서 프로세스가 sign..
0. Program Layout main() 함수 int main(int argc, char* argv[]); arguments name desc argc command-line 인수의 수 argv 인수를 가리키는 포인터 배열 커널의 exec 함수 중 하나로 C 프로그램이 실행되면, main 함수가 실행되기 전에 special start-up routine이 호출된다. 실행가능 한 프로그램 파일은 이 루틴을 프로그램의 시작 주소로 지정한다. 이 start-up 루틴은 커널로부터 값을 가져온다. command-line arguments 프로그램이 실행될 때, exec를 수행하는 프로세스는 새로운 프로그램에게 command-line arguments를 전달할 수 있다. environment variables..
1. The implementation of a directory Directory - 디렉토리 엔트리를 포함하고 있음 - `creat`이나 `open` 시스템 콜로 생성될 수 없음 - `mkdir` 이나 `opendir` 사용 - kernel만 write 할 수 있음 - 디렉토리 엔트리의 시리즈로 구성되어 있어서, 서브디렉토리나 파일을 포함할 수 있음 - symbolic link로 디렉토리 생성 가능 - directory entry |name|desc| |---|---| |i-node number|i-node| |character filed|directory 이름| Directory permission 일반적인 파일과 같게 구성됨 permission type interpreted read 파일과 하위디..
1. 파일(File) 데이터를 위한 컨테이너 일련의 바이트 no format 디스크 파일에서 각 바이트는 개별적으로 주소로 접근 가능 외부 장치에 대해 균일한 인터페이스파일 시스템(File System)컴퓨터 파일과 데이터를 저장하고 체계화하는 방식 파일을 검색하고 접근하기 쉽다. 데이터 저장 장치에 사용된다(하드 디스크, CD-ROM). 파일 시스템에 접근하는 구조 2. UNIX file access primitevs UNIX primitives(유닉스 기본 요소) 이름 설명 open 파일이 없으면 생성하고 파일을 열어 파일을 읽기, 쓰기 create 빈 파일 생성 close 연 파일 닫기 read 파일로부터 정보를 추출 write 파일의 정보를 입력 lseek 파일에서 읽고 쓰는 offset 변경 u..
Unix 대표 특징 대화형 시스템 : 유저가 명령을 내리면 시스템은 그 명령을 수행하고 결과를 출력 높은 이식성 : C언어로 구성이 되어 있기 때문에 타 기종에 이식이 유용 멀티 태스킹 시스템 : 동시에 여러 개의 프로세서 수행 가능 멀티 유저 시스템 : 여러 명의 사용자가 동시에 사용 가능 쉘 프로그래밍 : 반복적이고 복잡한 명령어를 대화식으로 처리 가능 계층적 파일 시스템 : 사용자가 그룹 간의 디렉토리 및 파일을 효과적으로 운용 1. UNIX 구조 유닉스는 크게 커널, 쉡, 유틸리티로 이루어져 있습니다. 커널(Kernel) 커널은 하드웨어와 OS사이의 인터페이스 역할을 하는 것으로 시스템 프로그램 계층입니다. 커널에서는 기본적으로 네트워크, 프로세스 관리, 파일 관리, 장치 관리, 멀티태스킹 등의 ..