Multiprocess간 IPC 중 공유 메모리
·
Interview/OS
Multiprocess간 통신 방법Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.3. 공유 메모리 (Shared Memory)공유 메모리는 여러 프로세스가 같은 메모리 공간을 공유하여 데이터를 주고받는 방법입니다. 가장 빠른 IPC 방법 중 하나로, 프로세스 간에 직접적인 메모리 접근을 가능하게 합니다.하지만, 동기화 문제가 발생..
OS Semaphore 세마포어
·
Interview/OS
Semaphore 세마포어세마포어(Semaphore)는 동기화를 위해 공유 자원에 대한 접근을 제어하는 메커니즘입니다. 여러 프로세스가 동시에 공유 메모리에 접근할 때 경쟁 조건(Race Condition)이 발생하지 않도록 세마포어를 사용하여 동기화할 수 있습니다.세마포어의 주요 동작:P 연산(Wait 또는 Down): 세마포어 값을 감소시키며, 값이 0보다 크면 자원을 사용할 수 있다는 의미입니다. 만약 값이 0이면, 자원이 해제될 때까지 대기합니다.V 연산(Signal 또는 Up): 세마포어 값을 증가시키며, 자원의 사용을 해제하여 다른 프로세스가 접근할 수 있게 만듭니다.C에서는 System V 세마포어 API를 통해 세마포어를 사용할 수 있습니다.1. 세마포어 관련 함수1) semget(): 세..
OS Race Condition
·
Interview/OS
Race Condition (경쟁 상태)Race Condition은 다중 스레드 또는 다중 프로세스 환경에서 두 개 이상의 작업이 동시에 수행되면서 공유 자원에 대한 비정상적이고 예기치 않은 동작을 유발하는 상황입니다. 동시성이 필요한 상황에서 올바른 동기화가 이루어지지 않았을 때 발생하는 문제로, 특정 코드나 데이터를 올바른 순서로 처리하지 못해 의도하지 않은 결과를 초래할 수 있습니다.Race Condition의 발생 조건Race Condition은 다음 두 가지 조건이 충족될 때 발생합니다:병렬 처리: 여러 스레드나 프로세스가 동시에 실행되고 있는 환경.공유 자원 접근: 여러 작업이 동일한 공유 자원(예: 변수, 메모리)에 접근 및 수정하려 할 때.Race Condition 예시다음은 Race Co..
Multiprocess 간 IPC 중 Shared memory 통신
·
Interview/OS
Shared memory 통신Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.3. 공유 메모리 (Shared Memory)공유 메모리는 여러 프로세스가 같은 메모리 공간을 공유하여 데이터를 주고받는 방법입니다. 가장 빠른 IPC 방법 중 하나로, 프로세스 간에 직접적인 메모리 접근을 가능하게 합니다.하지만, 동기화 문제가 발생할 수..
Multiprocess 간 IPC 중 Message Queue MQ 통신
·
Interview/OS
Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.2. 메시지 큐 (Message Queue)메시지 큐는 커널이 관리하는 큐에 데이터를 메시지 단위로 보내고 받을 수 있는 방법입니다. FIFO 방식으로 동작하며, 각 메시지에는 타입이 지정되므로, 수신자는 메시지 타입에 따라 특정 메시지만 받을 수 있습니다.단방향 통신이나 양방향 통신..
Multiprocess 간 IPC 중 Pipe 통신
·
Interview/OS
Multiprocess 간의 통신(IPC, Inter-Process Communication)은 서로 다른 프로세스가 데이터를 주고받거나 리소스를 공유하는 방법입니다. 운영체제에서 프로세스는 독립된 메모리 공간을 가지기 때문에 직접적으로 데이터를 공유할 수 없습니다. 따라서 IPC 기법을 사용하여 프로세스 간의 데이터를 전달하거나 동기화해야 합니다.Linux 및 Unix에서 사용하는 다양한 IPC 방법들을 아래에 설명합니다.1. 파이프 (Pipe)파이프는 두 프로세스 간에 단방향 통신을 위한 방법입니다. 일반적으로 한 프로세스는 데이터를 쓰고, 다른 프로세스는 해당 데이터를 읽습니다._익명 파이프(Anonymous Pipe)*_와 이름 있는 파이프(Named Pipe, FIFO) 두 가지 종류가 있습니다..
Linux OS exec()
·
Interview/OS
exec() 함수는 Linux 및 Unix 기반 운영체제에서 실행 중인 프로세스를 새로운 프로그램으로 교체하는 시스템 호출입니다. 이 시스템 호출은 fork()와 함께 자주 사용되며, *현재 프로세스를 완전히 대체하고 새로운 프로그램*을 실행하는 데 사용됩니다.exec() 함수는 한 프로세스 내에서 실행되던 코드, 데이터, 스택을 새로운 프로그램으로 덮어씌우고, PID는 유지되면서 프로그램이 실행되는 방식입니다. exec() 함수는 여러 변형(execl, execp, execv, execle 등)이 있지만, 기본적으로 내부 동작 방식은 동일합니다.exec()의 내부 동작 과정프로세스 준비 상태exec()는 현재 실행 중인 프로세스에서 호출됩니다. 이 프로세스는 이미 존재하는 상태이므로 PID(프로세스 I..
Linux OS inode
·
Interview/OS
Linux inodeLinux에서 inode(index node)는 파일 시스템에서 파일의 메타데이터를 저장하는 데이터 구조입니다. 각 파일은 하나의 inode를 가지며, 이 inode는 파일의 실제 데이터가 저장된 위치와 파일에 대한 다양한 정보를 포함합니다. 아래에 inode에 대한 자세한 설명을 하겠습니다.inode의 주요 역할파일 메타데이터 저장:inode는 다음과 같은 메타데이터를 포함합니다:파일 타입: 일반 파일, 디렉터리, 심볼릭 링크 등.파일 권한: 읽기, 쓰기, 실행 권한을 포함한 사용자 및 그룹 정보.소유자 정보: 파일의 소유자와 그룹 ID.파일 크기: 파일의 바이트 단위 크기.타임스탬프:생성 시간 (ctime)수정 시간 (mtime)접근 시간 (atime)링크 수: 해당 inode에 ..
김 정출
'Interview' 카테고리의 글 목록 (9 Page)