반응형

stack 3

MultiProcess 와 MultiThread

❓ 멀티 프로세스 하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업(task)을 처리하도록 하는 것이다. 🔎 특징 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다. Context Switching과정에서 캐시 메모리 초기화 등 무거운 작업이 진행되고 많은 시간이 소모되는 등의 오버헤드가 발생한다. 각 자식 프로세스는 독립된 메모리 영역을 할당받았기 때문에 프로세스 사이에서 공유하는 메모리가 없어, Context Switching 과정 발생 시 캐시에 있는 모든 데이터를 모두 리셋하고 다시 캐시정보를 불러와야 한다. 프로세스 간의 어렵고 복잡한 통신 기법(IPC) : 프로세스는 각각의 독립된 메모리 영역을 할..

OS 2022.03.22

Process와 Thread

❓프로세스(Process) 란 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. 🔎 특징 기본적으로 프로세스당 최소 1개의 스레드(메인스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. Ex) 파이프, 파일, 소켓 등을 이용한 통신 방법 이용 🪶 할당 받는 자원 : CPU 시간, 운영되기 위해 필..

OS 2022.03.22

Java 메모리 영역(Static, Stack, Heap)

❓Static ❓Stack ❓Heap 멀티스레드를 어떻게 사용할까? ❓Static 패키지나 클래스 정보가 호출되는 시점에 올라간다. static이 붙은 클래스 멤버(필드,메소드)도 이 영역에 올라간다. static을 붙일 대상은 읽기 전용이 아닌 경우, 가능한 사용하지 않아야 하고 무분별하게 사용하면 멀티스레드에서의 Thread Safe 문제가 발생할 수 있다. 클래스, 메소드 영역이라고 불린다. JVM 종료 시점까지 사라지지 않고 유지된다. ❓Stack 흔히 말하는 call stack이 이 영역에서 다뤄지는 내용이다. stack에서 선언된 지역변수는 stack에 위치한다. primitive는 stack 영역에 저장되고 reference(wrapper 등)는 참조값만 저장된다. 외부의 stack fram..

Java 2022.01.11
반응형