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에 ..
Linux OS File System
·
Interview/OS
Linux에서는 파일을 관리하는 방식이 여러 가지 요소와 구조로 이루어져 있습니다. 다음은 Linux의 파일 시스템 및 파일 관리에 대한 주요 개념과 구성 요소입니다.1. 파일 시스템 구조계층적 구조: Linux 파일 시스템은 트리 구조로 되어 있으며, 모든 파일과 디렉터리는 루트 디렉터리(/)를 기준으로 계층적으로 구성됩니다.디렉터리: 디렉터리는 파일을 조직하는 방법을 제공하며, 다른 디렉터리를 포함할 수 있습니다. 주요 디렉터리에는 /bin, /etc, /home, /usr, /var 등이 있습니다.2. 파일 시스템 타입Linux는 여러 가지 파일 시스템을 지원합니다. 각 파일 시스템은 고유한 특성과 용도가 있습니다. 일반적인 파일 시스템 타입에는 다음이 포함됩니다:ext4: Linux에서 가장 널리..
Linux OS File Descriptor
·
Interview/OS
파일 디스크립터파일 디스크립터(File Descriptor)는 Linux와 Unix 기반 운영체제에서 파일이나 입출력 리소스에 접근할 때 사용하는 추상적인 핸들입니다. 운영체제는 파일 디스크립터를 통해 파일, 소켓, 파이프, 표준 입출력 장치와 같은 다양한 입출력 자원을 관리하고 접근할 수 있습니다.파일 디스크립터의 역할파일 식별자 역할파일 디스크립터는 운영체제 내부에서 열린 파일을 식별하는 데 사용됩니다. 프로세스가 파일을 열면, 운영체제는 해당 파일에 대한 파일 디스크립터를 생성하고, 이를 통해 프로세스가 파일에 접근할 수 있게 합니다.파일 디스크립터는 정수 값으로, 운영체제는 이를 통해 열린 파일에 대한 메타데이터(파일의 위치, 상태 등)를 추적합니다.입출력 연산 관리파일 디스크립터는 파일과의 입출..
Linux OS fork
·
Interview/OS
forkfork()는 Linux 및 Unix 기반 운영체제에서 프로세스를 생성하는 가장 기본적인 시스템 호출입니다. 이 호출은 현재 프로세스(부모 프로세스)를 복사하여 자식 프로세스를 생성하는데, 부모와 자식 프로세스는 거의 동일한 환경을 가지지만, 프로세스 ID(PID)와 몇 가지 자원은 서로 다릅니다.fork() 호출의 내부적인 동작 방식을 단계별로 설명해 보겠습니다.1. 시스템 호출 fork() 발생사용자 공간에서 fork()를 호출하면, 커널 모드로 진입하여 커널이 새로운 프로세스를 생성하는 작업을 시작합니다.fork()는 부모 프로세스의 주소 공간을 그대로 복사해서 자식 프로세스를 만들지만, 커널 내부에서 몇 가지 최적화를 적용합니다.2. 프로세스 테이블 엔트리 생성커널은 프로세스 관리를 위해 ..
김 정출
'Interview/OS' 카테고리의 글 목록 (2 Page)