프로세스(Process)
프로세스 : 컴퓨터 내에서 실행중인 프로그램
프로세스(Process)는 실행 중인 프로그램을 의미합니다. 즉, 컴퓨터에서 실행되는 프로그램을 프로세스라고 부릅니다. 프로세스는 운영체제의 관리 아래에서 실행되며, 프로그램이 실행될 때 운영체제는 해당 프로그램을 메모리에 적재하고, CPU 자원과 같은 다른 시스템 자원을 할당하여 실행합니다.
프로세스는 다음과 같은 특징을 갖습니다.
독립성: 각각의 프로세스는 다른 프로세스와 별개로 실행되며, 서로 독립적입니다. 이는 하나의 프로세스가 종료되더라도 다른 프로세스에는 영향을 미치지 않는다는 것을 의미합니다.
자원 할당: 프로세스는 운영체제에 의해 시스템 자원(CPU, 메모리, 입출력 등)을 할당받아 실행됩니다.
구조: 각각의 프로세스는 프로세스 제어 블록(PCB)이라는 구조체를 갖습니다. 이 구조체는 프로세스의 상태, 우선순위, 자원 할당 정보 등을 저장하고 있습니다.
동기화: 여러 개의 프로세스가 동시에 실행될 때, 서로 간의 충돌을 막기 위해 동기화 기법을 사용합니다. 예를 들어, 임계영역 문제를 해결하기 위한 세마포어(Semaphore)나 뮤텍스(Mutex) 같은 기법을 사용할 수 있습니다.
프로세스는 운영체제의 관리 아래에서 실행되므로, 운영체제가 제공하는 다양한 기능을 활용할 수 있습니다. 예를 들어, 운영체제는 프로세스 간의 통신이나 동기화를 지원하며, 시스템 자원을 효율적으로 사용하기 위한 스케줄링 기능도 제공합니다.
코드(Code),데이터(Data),힙(Heap),스택(Stack)
스레드는 프로세스 내의 메모리를 공유해 사용할수 있으며 프로세스간 전환 속도보다 스레드간 전환 속도가 더 빠르다.
다중스레딩- 다수의 스레드를 이용하여 하나의 프로그램을 처리하는 것