본문 바로가기

Computer Science112

[UNIX/Linux] ep10-1) 메시지 큐, 공유 메모리 https://claremont.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-IPCInter-Process-Communication [운영체제] IPC(Inter-Process Communication)https://claremont.tistory.com/entry/ep2-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4process [운영체제] ep2) 프로세스(process)ㅁ프로세스(process): 실행 중인 프로그램 (실행/스케줄링의 단위 및 자료구조)보조기억장치에 저장claremont.tistory.com [ep10의 학습목표]1. UNIX 시스템 V에서 제공하는 IPC 기법2. 메시지 큐를 이용한 통신 프로그램 작성3. 공.. 2024. 11. 6.
[운영체제] IPC(Inter-Process Communication) https://claremont.tistory.com/entry/ep2-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4process [운영체제] ep2) 프로세스(process)ㅁ프로세스(process): 실행 중인 프로그램 (실행/스케줄링의 단위 및 자료구조)보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간, 그 프로그램은 프로세스가 된다그리고 이 과claremont.tistory.com  ㅁ프로세스 간 통신(IPC, Inter-Process Communication): 두 개 이상의 프로세스가 서로 데이터를 교환할 수 있도록 하는 다양한 메커니즘과 기술각 프로세스는 독립된 메모리 공간을 가지고 있기 때문에, 서로 직접 데이터를 공유하지 못한다. 따라서 IPC는 이러한 .. 2024. 11. 6.
[UNIX/Linux] ep7++) 레코드 락킹(advisory locking) https://claremont.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-ep4-1-Concurrency-Mutual-Exclusion-and-Synchronization [운영체제] ep4-1) Concurrency: Mutual Exclusion and Synchronizationㅁ동시성(Concurrency): 여러 작업이 짧은 시간 간격으로 번갈아 가며 수행됨으로써 동시에 처리되는 것처럼 보이게 만드는 것현대 OS는 멀티 프로그래밍, 멀티 프로세싱 등의 기법으로 동시성을 사claremont.tistory.comhttps://claremont.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-e.. 2024. 11. 6.
[UNIX/Linux] ep9+) 파이프 함수 실습 hw1. pipe() 함수를 사용해 부모 프로세스와 자식 프로세스 간에 대화가 가능한 양방향 통신이 되도록 프로그램을 작성하시오(Example : parent-쓰기부터)char msg[256], inmsg[256]; close(fd1[0]);close(fd2[1]);while (1) {    fgets(msg, sizeof(msg) - 1, stdin);    write(fd1[1], msg, sizeof(msg) + 1);    read(fd2[0], msg, 255);} close (fd1[1]); close (fd2[0]);while (1) {    read(fd1[0], inmsg, 255);    fgets(inmsg, sizeof(inmsg) - 1, stdin);    write(fd2[1].. 2024. 11. 4.
CUDA + RAID 기반 데이터 분산 시뮬레이션 ㅁCPU: 적은 수의 강력한 ALU(산술 논리 장치)를 포함하여, 복잡한 작업을 빠르게 처리하는 데 최적화되어 있다. CPU는 제어 유닛과 캐시, DRAM을 통해 다양한 작업을 효과적으로 관리한다.ㅁGPU: 많은 수의 작은 코어(core)를 가지고 있어서, 병렬 연산을 통해 대량의 데이터를 동시에 처리하는 데 최적화되어 있다.   ㅁCUDA(Compute Unified Device Architecture): NVIDIA에서 개발한 병렬 컴퓨팅 플랫폼이자 프로그래밍 모델로, GPU(Graphics Processing Unit)를 활용하여 고성능 연산을 수행할 수 있게 하는 기술이다. 일반적으로 CPU만으로 수행하기 힘든 대규모 연산을 GPU의 수많은 코어를 통해 병렬 처리함으로써 성능을 크게 향상시킬 수 .. 2024. 10. 31.
[UNIX/Linux] ep9) 파이프 [ep9의 학습목표]1. 파이프를 이용한 IPC 기법2. 이름 없는 파이프를 이용한 통신 프로그램 작성3. 이름 있는 파이프를 이용한 통신 프로그램 작성 ㅁ파이프('|'): 두 프로세스 사이에서 한 방향으로 통신할 수 있도록 지원하는 것파이프는 이름 없는 파이프(익명 파이프)와 이름 있는 파이프로 구분된다 셸에서 파이프 기능은 한 명령의 표준 출력을 다음 명령에서 표준 입력으로 받아 수행하는 것을 의미한다cat test.c | more # 앞에 있는 명령인 cat test.c의 표준 출력을 다음 명령인 more의 표준 입력으로 사용 위 예를 실행하면 test.c를 화면 단위로 출력한다 ㅁ이름 없는 파이프(pipe)• 특별한 수식어 없이 그냥 파이프라고 하면 일반적으로 이름 없는 파이프(익명 파이프).. 2024. 10. 31.
[UNIX/Linux] ep8+) 시그널 함수 실습 ex1. 자신에게 SIGUSR1 시그널을 보내는 프로그램을 작성하시오. 시그널을 보낸 후 출력문을 넣어 출력이 되는지, 프로그램을 실행하면 어떤 메시지가 출력되는지 확인하시오 (kill을 사용)kill (getpid(), SIGUSR1);#include #include #include #include int main() { printf("Send SIGUSR1 Signal to me.\n"); kill(getpid(), SIGUSR1); printf("After SIGQUIT Signal.\n"); return 0;}   ex2. SIGILL 시그널의 기본 처리는 코어 덤프이다. SIGILL 시그널을 처리하는 시그널 핸들러를 작성해 실행하면 코어 덤프가 발생하지 않는지 확인하시오 (.. 2024. 10. 24.
[UNIX/Linux] ep8) 시그널 https://claremont.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-ep4-CPU%EC%99%80-%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8 [컴퓨터 구조] ep4) CPU와 인터럽트컴퓨터의 두뇌 CPU == 프로세서에 대해서 자세히 알아보자ㅁCPU(Central Processing Unit) = ALU + 제어장치 + 레지스터  ㅇALU(Arithmetic Logic Unit) 산술연산장치 ALU는 플래그를 내보낸다 아래의 표를 보자 claremont.tistory.com우리가 흔히 사용하는 ctrl + c 가 바로 비동기적 인터럽트 명령이고, 더 자세히 들어가면 SIGINT 시그널을 보내 프로그램에.. 2024. 10. 23.
[UNIX/Linux] ep7+) 프로세스 생성과 실행 함수 실습 (ex1_argc.c 파일)#include #include #include #include #include char* usage = "Usage : Directory Suffix\n";int my_double_ls(const char*, char*);int match(const char*, const char*);int main(int argc, char** argv) { if (argc != 3) { fprintf(stderr, usage); exit(1); } my_double_ls(argv[1], argv[2]); exit(0); return 0;}int my_double_ls(const char* name, char* suffix) { st.. 2024. 10. 22.