CS스터디 발표자료-프로세스 스케줄링 기초-DAY5 TIL

조주영·2021년 8월 5일
1

데브코스-TIL

목록 보기
6/34

프로세스 스케줄링

프로세스(process)란?

메모리에 올려져서, 실행 중 인 프로그램입니다.

ex)
하드디스크에 있는 프로그램을 실행하면,
실행을 위해서 메모리 할당이 이루어지고,
할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 부릅니다.

프로세스 스케줄링

운영체제 안에서 프로세스들의 자원들의 스케줄을 정해주는 것입니다.
한정된 자원안에서, 어떻게 프로세스들을 처리하는지, 그 종류를 알아 봅시다.!

배치 처리 시스템 (일괄처리 시스템)

큐를 생각!! (first in first out)
순차적으로 먼저 들어온 순서대로 처리 하는 시스템입니다.

일괄처리의 특징

일괄처리란?

ex) 8시에 실행을 한다는 조건을 넣고, 그 전까지는 큐에 작업을 받아 놓다가, 8시가 되면 한번에! 처리하는 특징이 있습니다.!

단점

  • 실행시간이 긴 프로그램이 먼저 처리가 되고 있으면, 다른 프로그램이 실행하는데 시간을 많이 기다려야 합니다.
  • 다중 작업이 되지 않습니다. Ex) MP3 음악 들으며 문서 작성 불가.
  • 여러 사용자가 컴퓨터 하나를 사용 하지 못합니다.(다중 사용자 지원불가)

->이것때문에 시분할 시스템 나왔습니다.

시분할 시스템(라운드로빈)

정해진 응답시간동안 응용프로그램을 바꿔가며 실행합니다.
->여러 사용자가 동시에 컴퓨팅 리소스를 공유하는 것입니다.
다중 사용자 지원, 응답시간 최소화

단점

  • 전체 효율은 좋아지나 개인별 사용자 입장에서는 반응 속도가 느려질수 있겠습니다.

멀티 태스킹 & 멀티 프로세서

단일 CPU에서 단위시간 기준으로, 여러 응용 프로그램이 동시에 실행되는 것 처럼 보이도록 하는 시스템입니다.
ex)나는 음악을 들으며 문서를 작업한다. 단위시간이 0.1초다

->사용자에게는 동시에 실행되는 것 처럼 보임

그렇다면 여러 cpu를 사용하는 것은???

->여러 cpu에 하나의 프로그램을 병렬로 실행시켜 실행속도를 극대화 시키는시스템

이게 바로
멀티 프로세서!!

멀티 프로그래밍

최대한 cpu를 많이 활용하도록 하는 시스템으로
시간 대비 cpu활용도를 높이자. 라는 목표를 갖고 있습니다.
응용 프로그램은 짧은 시간안에 실행 완료를 시킬 수 있습니다.

응용프로그램은 온전히 cpu에 쓰기보다 다른작업을 중간에 필요로 하는 경우가 많습니다.

ex)응용 프로그램이 실행되다가 파일을 읽는다.
ex)응용 프로그램이 실행되다가 프린팅 한다.

읽는 시간, 실행되는 시간동안에도 프로세스를 처리합니다!

이렇게 cpu를 쉬지 않고 응용 프로그램을 실행토록 해서 짧은 시간 안에 실행완료하는 것이 멀티 프로그래밍 입니다..! -끝

Q&A

멀티프로세서와 멀티프로세스의 차이가 무엇일까요?

처음 내 생각:

  1. 단순 접미사 -or? 의 차이??
    멀티 프로세서(Multi Processor)= 여러 cpu를 갖고있어 프로세스를 병렬적으로 돌려주는 하나의 시스템 전체단위?
    멀티 프로세스(Multi Process) = cpu를 병렬적으로 프로세스를 처리 그 자체를 의미?
  2. 올바른 명칭이 정해져 있는가?
    구글링을 해본결과, 멀티 프로세'스'가 아닌, 멀티 프로세'서' 와 많이 비교되는 것이, '멀티 코어'라는 개념이었습니다.
    멀티 코어는 , 프로그램 명령을 읽고 실행할 수 있는 코어라고하는 두 개 이상의 독립 처리 장치가있는 단일 CPU 또는 프로세서 이고, 별도의 코어에서 동시에 여러 명령어를 실행하여 전체 속도를 높이고 병렬 컴퓨팅을 구현한다는 것에서 공통점과 차이점이 있다는 것을 알았습니다.
    앞서 제가 발표한 자료에서는, 멀티 프로세'서'가 아닌, 멀티 프로세'스'로 발표를 하였기에, 명칭이 '멀티 프로세'서'가 올바른 명칭이라면 이해가 간다.

답: 프로세'스' 와 프로세'서'의 이해가 필요.

프로세스(process)

실행 중인 프로그램 (동적)으로, 말 그대로 "절차(과정)" 입니다.

그렇다면 멀티 프로세서?

프로세서(processor)

프로세스를 수행하는 하드웨어 장치(유닛) = CPU, MPU, ...으로,
데이터 포맷을 변환하는 역할을 수행하는 데이터 프로세싱 시스템(데이터 처리 시스템)을 의미하며 예시로,
출력 가능한 인쇄물을 생성하는 워드프로세서도 프로세서라 부릅니다.

그렇다면, 결론이 나옵니다.

  • 멀티 프로세서: 두 개 이상의 프로세서로 구성된 시스템
  • 멀티 코어: 두 개 이상의 코어로 구성된 프로세서
  • 멀티 프로세스: 여러 개의 프로세스로 실행되는 프로그램
  • 멀티 스레드: 여러 개의 스레드로 실행되는 프로세스

회고:

사실 돌이켜보면, 학기중 배웠던 내용이기도 하고, 질문으로 들어온 멀티프로세서와 멀티프로세스의 질문에 그저 '멀티'라는 단어에 꽂혀 이에 대한 답을 찾기에 급급하여,
더 원초적이고 기본내용인 프로세스와 프로세서의 개념을 먼저 접근하는 방법을 생각 못했다. 멘토님께서 용어의 중요성과 함께 알려주신 답을 보면서, 내 자신이 창피했다. 앞으로 기본에 조금 더 충실하고 기본용어 정리를 깔끔하게 해야겠다는 다짐과 함께 -끝ㅠㅠ

profile
꾸준히 성장하기

0개의 댓글