메모리에 올려져서, 실행 중 인 프로그램입니다.
ex)
하드디스크에 있는 프로그램을 실행하면,
실행을 위해서 메모리 할당이 이루어지고,
할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 부릅니다.
운영체제 안에서 프로세스들의 자원들의 스케줄을 정해주는 것입니다.
한정된 자원안에서, 어떻게 프로세스들을 처리하는지, 그 종류를 알아 봅시다.!
큐를 생각!! (first in first out)
순차적으로 먼저 들어온 순서대로 처리 하는 시스템입니다.
ex) 8시에 실행을 한다는 조건을 넣고, 그 전까지는 큐에 작업을 받아 놓다가, 8시가 되면 한번에! 처리하는 특징이 있습니다.!
->이것때문에 시분할 시스템 나왔습니다.
정해진 응답시간동안 응용프로그램을 바꿔가며 실행합니다.
->여러 사용자가 동시에 컴퓨팅 리소스를 공유하는 것입니다.
다중 사용자 지원, 응답시간 최소화
단일 CPU에서 단위시간 기준으로, 여러 응용 프로그램이 동시에 실행되는 것 처럼 보이도록 하는 시스템입니다.
ex)나는 음악을 들으며 문서를 작업한다. 단위시간이 0.1초다
->사용자에게는 동시에 실행되는 것 처럼 보임
->여러 cpu에 하나의 프로그램을 병렬로 실행시켜 실행속도를 극대화 시키는시스템
이게 바로
멀티 프로세서!!
최대한 cpu를 많이 활용하도록 하는 시스템으로
시간 대비 cpu활용도를 높이자. 라는 목표를 갖고 있습니다.
응용 프로그램은 짧은 시간안에 실행 완료를 시킬 수 있습니다.
응용프로그램은 온전히 cpu에 쓰기보다 다른작업을 중간에 필요로 하는 경우가 많습니다.
ex)응용 프로그램이 실행되다가 파일을 읽는다.
ex)응용 프로그램이 실행되다가 프린팅 한다.
읽는 시간, 실행되는 시간동안에도 프로세스를 처리합니다!
이렇게 cpu를 쉬지 않고 응용 프로그램을 실행토록 해서 짧은 시간 안에 실행완료하는 것이 멀티 프로그래밍 입니다..! -끝
실행 중인 프로그램 (동적)으로, 말 그대로 "절차(과정)" 입니다.
프로세스를 수행하는 하드웨어 장치(유닛) = CPU, MPU, ...으로,
데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미하며 예시로,
출력 가능한 인쇄물을 생성하는 워드프로세서도 프로세서라 부릅니다.
사실 돌이켜보면, 학기중 배웠던 내용이기도 하고, 질문으로 들어온 멀티프로세서와 멀티프로세스의 질문에 그저 '멀티'라는 단어에 꽂혀 이에 대한 답을 찾기에 급급하여,
더 원초적이고 기본내용인 프로세스와 프로세서의 개념을 먼저 접근하는 방법을 생각 못했다. 멘토님께서 용어의 중요성과 함께 알려주신 답을 보면서, 내 자신이 창피했다. 앞으로 기본에 조금 더 충실하고 기본용어 정리를 깔끔하게 해야겠다는 다짐과 함께 -끝ㅠㅠ