본문 바로가기

프로세스4

[OS] 프로세스 주소 공간 Code(Text) 우리가 작성한 소스코드가 들어 가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역 이라고도 부른다. 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등 함수에 대한 기계어 코드가 여기에 지정된다. 컴파일 타임에 결정되고 중간에 코드를 바꿀 수 없게 Read-Only 로 지정돼있다. Data 프로그램의 초기값 있는 전역 변수, 배열, 정적(static) 변수가 저장되는 영역이다. 즉, 프로그램이 구동되는 동안 항상 접근 가능한 변수가 저장되는 영역이다. 전역변수, static 값을 참조한 코드는 컴파일 하고 나면 Data 영역의 주소값을 가르키도록 바뀐다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 .. 2021. 8. 23.
[OS] 프로세스 vs 스레드 프로그램 프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다. 프로세스 메모리에 적재되어 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 프로그램 : 어떤 작업을 위해 실행할 수 있는 파일 운영체제로부터 자원을 할당받은 작업의 단위 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야.. 2021. 8. 18.
[OS] 프로세스 간 통신 방법(Inter Process Communication, IPC) 개념 프로세스들 간의 의사소통하는 것을 IPC라고 한다. 프로세스가 통신 가능하다는 것은 서로 다른 프로세스가 데이터를 주고 받을 수 있다는 것이며, 동시에 접근 가능한 메모리 즉, 프로세스들이 공유하는 메모리가 필요하다는 뜻이다. 따라서 컴퓨터 내부에서 보다 효율적으로 정보를 주고 받기 위한 통신의 일종이라고 생각하면 되고, 인터넷 통신을 IPC의 확장으로 이해할 수 있다. (프로세스간 통신이 서버-클라이언트 간 통신과 유사하기 때문) 프로세스간 통신을 위해 '파이프'와 같은 개념이 등장하게 되었다. 💡 스레드 간 통신보다 프로세스 간 통신이 어려운 이유 프로세스와 스레드의 차이를 알고 있다면 이해하기 쉽다. 우리는 fork와 같은 함수로 프로세스를 pthread_create와 같은 함수로 쓰레드를 각.. 2021. 5. 2.
[OS] 프로세스 이 글은 '그림으로 배우는 구조와 원리 운영체제' 개정3판을 참고하여 작성하였습니다. 첨부된 이미지는 직접 제작했습니다. 목차 1. 프로세스 개념과 상태 변화 개념 필요자원 프로그램과 프로세스 차이 관점에 따른 프로세스 프로세스 종류 프로세스 상태 변화와 상태 정보 프로세스 제어 블록 프로세스의 문맥 교환 2. 프로세스의 관리 프로세스의 구조 프로세스의 생성 프로세스의 종료 프로세스의 제거 프로세스의 중단과 재시작 프로세스의 우선순위 변경 프로세스의 문맥 교환 1. 프로세스 개념과 상태 변화 개념 일반적인 프로세스 정의는 '실행 중인 프로그램'이다. 실행 중이라는 의미는 디스크에 있던 프로그램을 메모리에 적재하여 운영체제의 제어를 받는 상태가 되었다는 것이다. 이는 자신만의 메모리 영역(주소 공간)이 있.. 2021. 4. 2.