반응형 개발22 IPC(Inter Process Communication) - 프로세스 간 통신 안녕허세염오늘 알아볼 내용은 IPC입니당이전에 공부한 바와 같이 우리가 알고있는 프로세스들은 각각 독립적으로 실행됩니다.이말은 즉슨 프로세스 각각은 다른 프로세스로 인해 영향을 받지 않는다는 말과 같습니다.하지만 이런 프로세스들 간에도 서로 통신을 해야하는 경우가 있습니다. 다른 프로세스의 자원을 읽어와야 한다던지.. 하는 경우가 종종 있습니다이때 나오는 개념이 바로 프로세스 간 통신수단인 IPC입니다!IPC(Inter Process Communication): 프로세스 간 통신을 가능하게 해주는 수단이 통신수단은 커널에 탑재되어있는 설비 수단입니다.IPC 통신에서는 프로세스 간의 데이터를 공유하는 과정에서 데이터가 손상되거나 문제가 발생하는 것을 막고, 동기화를 원활하게 돕기 위해 이전에 배웠던 세마포.. 2024. 12. 2. 데드락(DeadRock, 교착상태) 안녕하세요오늘은 데드락에 대해서 배워보겠습니다…..우우..햄드러요그래도어떠케해야지.데드락(DeadRock, 교착상태) : 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 제대로 된 작동이 되지 않고 무한한 대기상태에 빠지는 현상자원이 한정적인데 비해 자원이 필요한 프로세스나 스레드의 개수가 자원의 개수에 비해 많은 경우에 교착 상태가 발생합니다.데드락이 일어나는 경우의 예를 간단하게 들어봅니다.프로세스가 2개가 있고, 각각의 프로세스는 자원 a와 자원 b를 모두 필요로 합니다.프로세스1은 자원1을 얻습니다.프로세스2는 자원1을 프로세스1이 가지고 있으므로, 자원1을 얻지 못하고 자원2를 얻습니다.두 프로세스는 각각의 자원을 하나씩 지니고 있지만 추가로 필요한 자원이 자기자신이 아닌 상대방에게 있.. 2024. 11. 24. 공유 자원을 보호하자 - 세마포어(Semaphore)와 뮤텍스(Mutex) 안녕하세욤 오늘 공부할 내용은 세마포어와 뮤텍스라는 개넘입니다!! 공유 자원의 보호이름이 참 거창합니다. 두가지는 모두 공유자원 보호를 위한 일종의 방법론들인데요 여러개의 프로세스가 실행되는 동안, 공유되는 자원들이 존재합니다. 이 공유되는 자원은 실행중인 프로세스들이 모두 접근 가능합니다. 다만, 여기서 모든 프로세스들이 동시에 같은 공유자원을 접근하고 수정하게 된다면? 이른바 경쟁 상태(Race condition)에 빠지게 될 수 있습니다. + 경쟁 상태(Race condition)와 임계구역 경쟁상태경쟁상태는 두 개 이상의 스레드나 프로세스가 공유 자원에 동시 접근하면서 실행 결과가 접근 순서에 따라 달라지는 상태를 말합니다. 임계 구역아무리 동시에 접근하더라도 경쟁상태에 빠지지 않는 데이터 (ex.. 2024. 11. 19. [컴퓨터개론] - 페이징과 세그먼테이션 안녕하세요..오늘은 페이징과 세그먼테이션에 관련해서 글을 써보도록 하겠습니다. 페이징과 세그먼테이션은 컴퓨터 메모리를 관리하는 방법 두가지입니다. 메모리 관리방법을 활용하여 메모리를 활용해야 하는 이유는 대표적으로 운영체제가 효율적으로 메모리를 할당하고 관리하기 위해서입니다.이 두 방법은 각각 다른 방식으로 메모리를 나누고 관리하며, 두 방법은 모두 메모리 사용의 최적와와 실행 속도 향상 두가지를 최우선적인 목표로 가지고 있습니다. 두 개의 이론을 살펴보기 전에 먼저 알아야 할 선행 지식에 대해서 알아보도록 하겠습니다.가상 주소: 프로그램이 실행될 때 CPU가 참조하는 주소로, 실제 물리적 메모리 주소와 구분됨 이는 각 프로그램이 독립적인 주소 공간을 사용하도록 하여 프로그램 간의 충돌을 방지하고, 메모.. 2024. 10. 29. [컴퓨터개론] - CPU 스케줄러 안녕하세요이전시간에는 PCB와 문맥교환에 대해서 알아보았는데요. 두 개념을 설명하는 과정에서 잠깐 등장했던 CPU스케줄러를 기억하시나요??오늘은 그 CPU 스케줄러에 대해서 자세하게 이야기해보려고 합니다. 스케줄러란?우리가 아는 스케줄의 뜻과 같습니다. 작업의 일정을 계획하고 수립하는 것이 바로 스케줄러입니다. 스케줄러의 목표CPU 이용률 최대화: CPU가 항상 작업을 하고 있어 자원이 낭비되지 않도록 합니다.처리량 최대화: 단위 시간당 완료된 프로세스 수를 늘리는 것이 목표입니다.대기 시간 최소화: 프로세스가 준비 큐에서 대기하는 시간을 최소화합니다.응답 시간 최소화: 프로세스가 요청된 후 첫 번째 응답을 받을 때까지의 시간을 줄이는 것이 중요합니다.공정성: 모든 프로세스가 균등하게 CPU 자원을 받.. 2024. 10. 21. [컴퓨터개론] - PCB와 문맥교환(context switching) PCB(Process Control Block)프로세스 메타데이터들을 저장해 놓는 곳, 한 PCB 안에는 한 프로세스의 정보가 담김PCB가 필요한 이유이전 시간에 다중 프로세스, 다중 스레드 등에 대해 배우며, CPU안에 여러개의 프로세스가 진행될 수 있다는 것을 배웠습니다.그리고 이 여러개의 프로세스의 스케줄을 관리해주는 것을 말 그대로 CPU 스케줄링이라고 합니다.이 CPU스케줄링에서는 현재 어떤 프로세스가 실행되어야 하는지, 어떤 프로세스가 어떤 상태를 가져야하는지 등을 상황에 따라 적절히 분배하는 것을 의미합니다.(여기서, CPU스케줄링에 대한 자세한 내용은 바로 다음 글에서 다룰 것이고, 그 전에 스케줄링에 필요한 데이터들을 담는 공간 PCB에 대해서 먼저 설명하도록 하겠습니다.) CPU스케줄링.. 2024. 10. 16. 이전 1 2 3 4 다음 반응형