프로세스간 커뮤니케이션 (InterProcess Communication - IPC) 프로세스는 다른 프로세스의 공간을 접근할 수 없다 프로세스들이 서로의 공간을 쉽게 접근할 수 있다면? - 프로세스 데이터/코드가 바뀔 수 있다 -> 해킹 -> 매우 위험 IPC (InterProcess Communication) 프로세스간에 커뮤니케이션을 할 수 있게 프로세스간 통신 방법을 제공한다 IPC : InterProcess Communication * 프로세스간 통신이 필요한가요? - 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행 - 이 때 프로세스간 상태 확인 및 데이터 송수신이 필요하다 프로세스간 커뮤니케이션의 방법 1. file 사용 - file을 사용하면 실시간으로 직접 원하는 프로세스에 데이터..
프로세스와 컴퓨터 구조 프로세스 (process)는 일반적으로 어떻게 구성되어 있을까? text(CODE) : 코드 data : 변수 / 초기화된 데이터 stack : 임시 데이터 (함수 호출, 로컬 변수 등) heap : 코드에서 동적으로 만들어지는 데이터 PC(Program Counter) + SP (Stack Pointer) PC : 코드를 한줄 한줄 카리키는 주소 SP : 함수가 실행이 될 때 최상단 주소 프로세스 구조 : Stack, HEAP, DATA(BSS, DATA), TEXT(CODE) DATA를 BSS와 DATA로 분리 스택오버플로우 주로 해커들의 공격에 활용되었음 프로세스와 컨텍스트 스위칭 PC(Program Counter) + SP(Stack Pointer) Stack, HEAP, ..
인터럽트란? CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 창지나 또는 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술 > 어느 한 순간 CPU가 실행하는 명령은 하나! 다른 장치와 어떻게 커뮤니케이션을 할까요? 인터럽트가 필요한 이유 * 선점형 스케줄러 구현 프로세스 running 중에 스케줄러가 이를 중단시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스를 중단 시켜야 한다 현재 프로세스가 중단이 되려면 스케줄러 코드가 실행이 되서 현 프로세스 실행을 중지시켜야 한다 * IO Devices와의 커뮤니케이션 저장매체에서 데이터 처리 완료시 프로세스를 깨워야 한다 (block state -> ready state) * 예외 상황 핸들링 CPU가 프로그램을 실행하고..
선점형과 비선점형 스케줄러 선점형 스케줄러 (Preemptive Scheduling) : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할 수 있음 비선점형 스케줄러 (Non-preemptive Scheduling) : 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 선점형과 비선점형 스케줄러 차이 선점형 : 프로세스 running(실행)중에 스케줄러가 이를 중단시키고, 다른 프로세스로 교체 가능 비선점형 : 프로세스가 자발적으로 blocking상태로 들어가거나, 실행이 끝났을 때만 다른 프로세스로 교체 가능 (exit, I/O or event wait 상태일 때만 또다른 스케줄을 running 상태로 바꿀 수 있다) Waiting = blocking 스케줄러 구..