프로세스간 커뮤니케이션 프로세스들이 서로의 공간을 쉽게 접근할 수 있다면? 프로세스 데이터/코드가 바뀔 수 있으니 얼마나 위험할까? 프로세스는 다른 프로세스의 공간을 접근할 수 없다. IPC(Inter Process Communication) 프로세스간에 커뮤니케이션을 해야한다면 어떻게 해야할까? IPC를 이용한 프로세스간 통신방법을 제공함\ 프로세스간 통신이 필요할까? 성능을 높이기 위해 여러 프로세스를 만들어 동시 실행 이 때 프로세스간 상태 확인 데이터 송수신이 필요 Fork() 시스템콜 fork() 함수로 프로세스 자신을 복사해서 새로운 프로세스로 만들 수 있음 부모 프로세스, 자식 프로세스 프로세스를 fork()해서, 여러 프로세스를 동시에 실행시킬 수 있음 보통은 CPU가 한개 일때만 생각하지..
프로세스 구조 개요 프로세스(process)는 일반적으로 어떻게 구성되어 있을까? Text(CODE) 프로그램의 코드 Data 변수 / 초기화된 데이터 BSS Segment / Data Segement 로 분리된다. BSS 초기화되지 않은 Global, Static 변수 Data 초기화 된 Global, Static 변수 Stack 임시 데이터(함수 호출, 로컬변수 등) Heap 코드에서 동적으로 만들어지는 데이터 출처: https://www.drdobbs.com/security/anatomy-of-a-stack-smashing-attack-and-h/240001832?pgno=1 PCB Process Control Block(PCB), Process Context Block(PCB) 이라고 함 프로세스..
패스트캠프 강의를 듣고 정리했습니다. 인터럽트 개요 CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술 어느 한순간 CPU가 실행하는 명령은 하나! 다른 장치와 어떻게 커뮤니케이션을 할까? 인터럽트를 사용하면 된다. 인터럽트 필요한 이유 선점형 스케쥴러 구현 프로세스 running중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스 실행을 중단시킴 그러려면, 스케쥴러 코드가 실행이 되서, 현 프로세스 실행을 중지시켜야 함. IO Device와의 커뮤니케이션 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야함 (block state → ready state) 예외 상황 핸들링 CPU가 ..
패스트캠프 강의를 듣고 정리했습니다. 프로세스 상태와 스케쥴링 멀티 프로그래밍과 Wait 멀티프로그래밍 CPU 활용도를 극대화 하는 스케쥴링 알고리즘 Wait 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정 프로세스 상태 running state: 현재 CPU에서 실행 상태 ready state: CPU에서 실행 가능한 상태(실행 대기 상태) block state: 특정 이벤트 발생 대기 상태(예: 프린팅 다 되었다!) 프로세스 상태간 관계 Process block for input.[blocking] CPU자원이 필요없는 I/O wait, Lock, Idle, event wait Scheduler picks another process.[dispatch] Scheduler picks this ..
페스트 캠퍼스 강의를 듣고 정리했습니다. 프로세스 스케쥴링 알고리즘 프로세스(Process) 란? 실행중인 프로그램은 프로세스라고 한다. 프로세스 - 메모리에 올려져서, 실행 중인 프로그램이다. 코드 이미지(바이너리) - 실행파일, Ex) ELF format 프로세스라는 용어는 작업, task, job이라는 용어와 혼용된다. 응용 프로그램 ≠ 프로세스 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있다. 하나의 응용 프로그램은 여러개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있다.(IPC 기법) 스케쥴링 알고리즘 어느 순서대로 프로세스를 실행시킬까? 프로세스 응답시간을 가능한 짧게 하자!(시분할 시스템) CPU 활용도를 최대로 높혀서, 프로세스를 빨리 실행하자!(멀티 프로그래밍) FIFO..
페스트 캠퍼스 강의를 듣고 정리합니다. 프로그램 처리 방법들 배치처리 시스템 일괄 처리, 배치 처리, batch processing이라고 부른다. 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행하는 방식이다. 한번에 등록된 여러 프로그램을 순차적으로 실행이 가능하다. 배치처리 시스템의 문제 어떤 프로그램은 실행시간이 너무 길어서, 다른 프로그램이 실행되는데 너무 많이 기달려야한다. 음악을 들으면서, 문서도 작성하고 싶다.(동시에 여러 응용프로그램 실행) 여러 사용자가 동시에 하나의 컴퓨터를 사용하려면 어떻게 해야하나?(다중 사용자 지원) 시분할 시스템 다중 사용자를 지원하기 위해 컴퓨터 응답시간을 최소화하는 시스템이다. 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해준다. CPU ..
패스트 캠퍼스 강의를 듣고 정리합니다. 운영체제 큰 그림 응용프로그램, 운영체제, 컴퓨터하드웨어 관계 운영체제는 응용프로그램이 요청하는 메모리를 허가하고, 분배한다. 운영체제는 응용프로그램이 요청하는 CPU시간을 제공한다. 운영체제는 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어 한다. 쉘(Shell) - 사용자 인터페이스 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램이다. 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류된다. 시스템 콜 - 응용프로그램을 위한 인터페이스 시스템 콜 또는 시스템 호출 인터페이스라고 불린다. 운영체제의 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공한다. 보통 시스템 콜을 직접 사용하기 보다는..