컴퓨터공학 💻
-
fork(), exec() 함수 활용 연습문제 01-01. fork() | 부모 프로세스가 자식 프로세스 2개를 생성하고 각 자식 프로세스는 다시 자손 프로세스 2개를 생성하는 프로그램을 작성하라. [실행결과] 01-02. fork(), execl() | 프로그램 myprog1과 myprog2를 작성한 후, 조건에 따라 프로그램을 작성하라. 작성하는 프로그램명은 myexec이다. myexec의 사용법은 “$ myexec [a|b]”이다. 즉, 입력으로 ‘a’ 혹은 ‘b’를 받는다. (조건1) 파라미터로 ‘a’를 입력하면, “myprog1 14”를 수행하되, exec() 함수로는 execl()을 사용한다. (조건2) 파라메터로 ‘b’를 입력하면, “myprog2 12”를 수행하되, exec() 함수로는 e..
[시스템 프로그래밍] 프로세스 원리 : fork(), wait(), execl(), execlp() 함수 활용 연습문제fork(), exec() 함수 활용 연습문제 01-01. fork() | 부모 프로세스가 자식 프로세스 2개를 생성하고 각 자식 프로세스는 다시 자손 프로세스 2개를 생성하는 프로그램을 작성하라. [실행결과] 01-02. fork(), execl() | 프로그램 myprog1과 myprog2를 작성한 후, 조건에 따라 프로그램을 작성하라. 작성하는 프로그램명은 myexec이다. myexec의 사용법은 “$ myexec [a|b]”이다. 즉, 입력으로 ‘a’ 혹은 ‘b’를 받는다. (조건1) 파라미터로 ‘a’를 입력하면, “myprog1 14”를 수행하되, exec() 함수로는 execl()을 사용한다. (조건2) 파라메터로 ‘b’를 입력하면, “myprog2 12”를 수행하되, exec() 함수로는 e..
2021.06.05 -
우선순위 큐 (priority queue) 우선순위 큐는 우선순위를 가진 항목들을 저장하는 큐입니다. 일반적으로 큐는 선입선출(FIFO)기반의 자료구조로 알려져있는데 우선순위 큐는 우선순위가 높은 데이터가 먼저 나가게 됩니다. (ex. 구급차, 소방차가 다른 차들보다 먼저 나가는 일) 우선순위 큐의 종류에는 최소 우선순위 큐와 최대 우선순위 큐가 있으며 구현방법에는 배열, 연결리스트, 히프(heap)가 있습니다. 우선순위 큐의 구현방법 - 배열 우선 순위큐는 완전 이진 트리이므로 각 노드에 순서대로 번호를 붙일 수 있습니다. 붙여진 번호가 배열의 인덱스인 것입니다. 배열을 이용하여 트리를 구현하는 방법과 동일합니다. 배열을 이용하면 다음과 같은 규칙에 의해서 부모노드와 자식노드를 찾기가 쉽습니다. - 왼..
[자료구조] 우선순위 큐 (priority queue), 히프의 삽입과 삭제우선순위 큐 (priority queue) 우선순위 큐는 우선순위를 가진 항목들을 저장하는 큐입니다. 일반적으로 큐는 선입선출(FIFO)기반의 자료구조로 알려져있는데 우선순위 큐는 우선순위가 높은 데이터가 먼저 나가게 됩니다. (ex. 구급차, 소방차가 다른 차들보다 먼저 나가는 일) 우선순위 큐의 종류에는 최소 우선순위 큐와 최대 우선순위 큐가 있으며 구현방법에는 배열, 연결리스트, 히프(heap)가 있습니다. 우선순위 큐의 구현방법 - 배열 우선 순위큐는 완전 이진 트리이므로 각 노드에 순서대로 번호를 붙일 수 있습니다. 붙여진 번호가 배열의 인덱스인 것입니다. 배열을 이용하여 트리를 구현하는 방법과 동일합니다. 배열을 이용하면 다음과 같은 규칙에 의해서 부모노드와 자식노드를 찾기가 쉽습니다. - 왼..
2021.06.02 -
이진 탐색 트리 이진 트리의 핵심입니다. 탐색 트리는 탐색 작업을 효율적으로 하기 위한 자료구조입니다. 루트 노드를 기준으로 왼쪽 서브 트리의 key값은 루트 노드보다 작고 오른쪽 서브 트리의 key값은 루트 노드보다 큽니다. 따라서 이진 탐색 트리를 중위순회하면 오름차순 정렬이 됩니다. 탐색 연산 주어진 키 값이 루트 노드의 키 값과 같으면 탐색에 성공합니다. 주어진 키 값이 루트 노드의 키 값보다 작으면 왼쪽 서브트리를 탐색합니다. 주어진 키 값이 루트 노드의 키 값보다 크면 오른쪽 서브트리를 탐색합니다. 이진탐색트리에서의 탐색을 구현하는 방법으로는 순환적 방법과 반복적 방법이 있습니다. 순환적인 탐색 함수 TreeNode *search(TreeNode *node, int key) { if ( nod..
[자료구조] 이진 탐색 트리 - 탐색, 삽입, 삭제 연산이진 탐색 트리 이진 트리의 핵심입니다. 탐색 트리는 탐색 작업을 효율적으로 하기 위한 자료구조입니다. 루트 노드를 기준으로 왼쪽 서브 트리의 key값은 루트 노드보다 작고 오른쪽 서브 트리의 key값은 루트 노드보다 큽니다. 따라서 이진 탐색 트리를 중위순회하면 오름차순 정렬이 됩니다. 탐색 연산 주어진 키 값이 루트 노드의 키 값과 같으면 탐색에 성공합니다. 주어진 키 값이 루트 노드의 키 값보다 작으면 왼쪽 서브트리를 탐색합니다. 주어진 키 값이 루트 노드의 키 값보다 크면 오른쪽 서브트리를 탐색합니다. 이진탐색트리에서의 탐색을 구현하는 방법으로는 순환적 방법과 반복적 방법이 있습니다. 순환적인 탐색 함수 TreeNode *search(TreeNode *node, int key) { if ( nod..
2021.05.31 -
시스템 호출4 : stat(), chmod() 연습문제 01-01. 명령줄 인수로 파일 이름을 입력받아 사용자에 실행권한 'x'를 추가하는 프로그램을 작성하시오. [실행결과] 01-02. 명령줄 인수로 파일 이름을 입력받아, 그룹에 읽기권한 'r'과 쓰기권한 'w'를 추가하는 프로그램을 작성하시오. [실행결과] 01-03. 명령줄 인수로 권한과 파일 이름을 입력 받아, 그 파일의 권한을 변경하는 프로그램을 작성하시오. [실행결과]
[시스템 프로그래밍] 시스템 호출4 : stat(), chmod() 연습문제시스템 호출4 : stat(), chmod() 연습문제 01-01. 명령줄 인수로 파일 이름을 입력받아 사용자에 실행권한 'x'를 추가하는 프로그램을 작성하시오. [실행결과] 01-02. 명령줄 인수로 파일 이름을 입력받아, 그룹에 읽기권한 'r'과 쓰기권한 'w'를 추가하는 프로그램을 작성하시오. [실행결과] 01-03. 명령줄 인수로 권한과 파일 이름을 입력 받아, 그 파일의 권한을 변경하는 프로그램을 작성하시오. [실행결과]
2021.05.23 -
시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제 01-01. 명령줄 인수로 받은 파일의 소유자와 그룹의 이름을 프린트하는 프로그램을 작성하라. 명령줄 인수로 한 개 이상의 파일을 받을 수 있어야 한다. getpwuid()와 getgrgid()를 사용하라. [실행결과] 01-02. 파일의 이름들만 출력하는 프로그램을 작성하라. 디렉토리, 문자/블록장치, FIFO, 소켓, 심볼릭링크 등은 출력되지 않고 일반파일만 출력되어야 한다. [실행결과] 01-03. 사용자 옵션에 따라 필요한 정보만을 출력하는 프로그램을 작성하라. 적어도 -s, -F, -n 옵션은 처리되도록 한다. 쉘 명령 ls -s, ls -F, ls -n과 같은 출력을 내도록 한다. 출력되는 파..
[시스템 프로그래밍] 시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제 01-01. 명령줄 인수로 받은 파일의 소유자와 그룹의 이름을 프린트하는 프로그램을 작성하라. 명령줄 인수로 한 개 이상의 파일을 받을 수 있어야 한다. getpwuid()와 getgrgid()를 사용하라. [실행결과] 01-02. 파일의 이름들만 출력하는 프로그램을 작성하라. 디렉토리, 문자/블록장치, FIFO, 소켓, 심볼릭링크 등은 출력되지 않고 일반파일만 출력되어야 한다. [실행결과] 01-03. 사용자 옵션에 따라 필요한 정보만을 출력하는 프로그램을 작성하라. 적어도 -s, -F, -n 옵션은 처리되도록 한다. 쉘 명령 ls -s, ls -F, ls -n과 같은 출력을 내도록 한다. 출력되는 파..
2021.05.23 -
시스템 호출2 : lseek(), open(), read(), write() 연습문제 01-01. 실수 20개를 생성하여 파일에 모두 저장한 후, 이를 읽어서 출력하는 프로그램을 작성하시오. 실수는 (double)rand()/MAX_NUM으로 생성할 수 있다. 이후 이 파일로 인해 생성된 파일을 cat 명령어로 출력해 본 후 설명하라. 실행결과 01-02. 텍스트 파일의 줄들을 역순으로 바꾸어 파일로 출력하는 프로그램을 작성하라. 첫 줄이 마지막 줄이 되고 마지막 줄이 첫 줄이 되어야 한다. [실행결과]
[시스템 프로그래밍] 시스템 호출2 : lseek(), open(), read(), write() 연습문제시스템 호출2 : lseek(), open(), read(), write() 연습문제 01-01. 실수 20개를 생성하여 파일에 모두 저장한 후, 이를 읽어서 출력하는 프로그램을 작성하시오. 실수는 (double)rand()/MAX_NUM으로 생성할 수 있다. 이후 이 파일로 인해 생성된 파일을 cat 명령어로 출력해 본 후 설명하라. 실행결과 01-02. 텍스트 파일의 줄들을 역순으로 바꾸어 파일로 출력하는 프로그램을 작성하라. 첫 줄이 마지막 줄이 되고 마지막 줄이 첫 줄이 되어야 한다. [실행결과]
2021.05.23