프로그램과 프로세스

BackEnd_Ash.log·2021년 1월 8일
0

ComputerScience

목록 보기
4/8

https://www.youtube.com/watch?v=iks_Xb9DtTM

프로그램

저장 장치에 저장되어 있는 코드의 집합
ex ) test_python.py , test_javascript.js

컴퓨터에서 실행 할 수 있는 파일
그리고 그 프로그램이 실행되서 돌아가고 있는 상태를 프로세스 라고 한다.

  • 보조 기억장치 ( 하드디스크 , SSD) 에 존재
  • 실행 되기를 기다리는 명령어 ( 코드 )
  • 정적인 데이터의 묶음

프로세스 란

운영체제로부터 자원을 할당 받은 작업의 단위

  • 실행중인 프로그램

만약에 인터넷을 하기위해서 Chrome 브라우저를 실행했다면 Chrome 브라우저 또한 하나의 프로세스가 된다.

메모리

CPU 가 프로그램을 실행시키기 위해 할당하는 공간

앞서 위에 프로그램과 프로세스에 대해서 설명을 했다.
결국 컴퓨터에서 실행할수있는 파일을 프로그램이라고 하고 ( ex : test.py , javascript.js ) ,
그 프로그램이 실행되서 돌아가고 있는 상태를 프로세스 라고 한다.

즉 컴퓨터가 어떤 일을 하고 있는 상태를 프로세스 라고한다.

하지만 실행을 할려면 어떠한 공간이 필요하게 된다. 그 공간을 메모리라고한다.

스레드

프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위

컴퓨터 프로그램 수행 하게 되면 프로세스 내부에 존재하는 수행 경로를 스레드 라고한다.
프로세스는 단순한 껍데기 일 뿐 실제 작업은 스레드가 담당하게 된다.

프로세스 생성 시 하나의 주 스레드가 생성되어 대부분의 작업을 처리하고 주 스레드가 종료되면 프로세스도 종료된다.

멀티 태스킹

  • 멀티 태스킹 : 하나의 운영 체제에서 여러 개의 프로세스가 동시에 실행되는 환경

멀티 스레드

  • 멀티 스레딩 : 하나의 프로세스 내에서 다수의 스레드가 동시에 수행 되는것

전체 흐름

  • 한글 프로그램을 실행하면, 프로그램 자체가 아닌 한글 프로그램의 인스턴스(일종의 실행을 위한 데이터 집합)가 컴퓨터 메모리에 할당됩니다.
  • 이때 메모리에 할당된 동적인 상태의 프로그램의 인스턴스를 프로세스라고 합니다.
  • 메모리에서 할당된 저장공간은 휘발성이기 때문에, 저장하기 전에 한글 프로그램에서 작성하거나 수정한 내용은 하드디스크에 저장이 되지 않습니다 .

다른 예시를 보면 ,

만약 그렇다면 ,
요즘 괜찮은 에디터들을 보면 작성하는 동시에 저장이 되곤합니다.
ex ) 파이참 이라던지….

이러한 경우는
작성하는 순간에는 파이참이라는 에디터로 통해서 작성되어지는 코드들이 메모리에 할당이 되어지고 ,
그리고 코드 작성이 끝마치게 되면 , 자동적으로 디스크에 저장이 된다.

요약

  • 프로그램 : 저장 장치에 저장되어 있는 코드의 집합
  • 메모리 : CPU 가 프로그램을 실행시키기 위해 할당하는 공간
  • 프로세스 : 메모리에 올라가 있는 동적인 상태의 프로그램의 인스턴스
  • 스레드 : 프로세스 내에서 동작되는 여러 실행의 흐름

우리가 코드를 잘 짜야지만 스레드가 원활하게 돌아가게 된다.
프로그램의 성능은 컴퓨터의 하드웨어에 달려있기도하지만,
코드를 통해서 최적화 할수가 있다 . ( 스레드를 통해 )

profile
꾸준함이란 ... ?

0개의 댓글