목록학교 (9)
dev_eun
1. Introduction Sockets unix file descriptor을 이용하여 다른 프로그램과 소통하는 방법 2개의 socket 타입 UDP connectionless protocol flow와 에러 컨트롤 없음 small message muticast and broadcast 보안에 취약함 TCP connection-oriented protocol flow와 에러 컨트롤 메커니즘 사용 pipe FIFO Message Q socket permanent X O O X fifo O O △ O distance parent-child the same system the same system remote site 2. Addressing Internet Addressing Host는 32 비트set에..
1. Advanced IPC facilities IPC(Inter-Process Communication) 같은 시스템 내에 있는 프로세스끼리 정보를 공유할 수 있는 메커니즘 제공 message queues semaphores shared memory 한 번 만들면 계속 사용할 수 있음 여러 프로세스가 한 객체로 인식 mechanism function desc message queues msgctl 속성 변경 msgget 생성 혹은 접근 msgrcv receive 메세지 msgsnd send 메세지 semaphores semctl 속성 변경 semget 생성 혹은 접근 semop operation 실행(wait 혹은 post) shared memory shmctl 속성 변경 shmget 생성, 초기화 혹..
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. multi-user 환경 users and ownerships owner 유닉스 시스템의 모든 파일은 하나의 시스템 유저를 가지고 있다. 소유자는 보통 파일을 생성한 유저 소유자의 실제 identity는 user-id(uid) uid : 특정 유저네임과 연관되어 있음 유닉스 프로세스는 프로세스를 시작한 유저의 uid와 연관되어 있음 파일이 생성될 때 시스템은 생성된 프로세스의 uid의 ownership을 생성한다. ownership은 superuser(username=root, uid=0)와 file의 소유자를 변경할 수 있다. group 각 유저는 적어도 하나의 그룹에 속해 있다. 터미널에서 id 명령어를 실행했을 때 가장 먼저 나오는 그룹이 디폴트 그룹 /etc/group에 정의되어 있음 그룹의..
1. 파일(File) 데이터를 위한 컨테이너 일련의 바이트 no format 디스크 파일에서 각 바이트는 개별적으로 주소로 접근 가능 외부 장치에 대해 균일한 인터페이스파일 시스템(File System)컴퓨터 파일과 데이터를 저장하고 체계화하는 방식 파일을 검색하고 접근하기 쉽다. 데이터 저장 장치에 사용된다(하드 디스크, CD-ROM). 파일 시스템에 접근하는 구조 2. UNIX file access primitevs UNIX primitives(유닉스 기본 요소) 이름 설명 open 파일이 없으면 생성하고 파일을 열어 파일을 읽기, 쓰기 create 빈 파일 생성 close 연 파일 닫기 read 파일로부터 정보를 추출 write 파일의 정보를 입력 lseek 파일에서 읽고 쓰는 offset 변경 u..