본문 바로가기
728x90

프로세스6

단일 프로그래밍 환경의 메모리 할당 메모리 오버레이 실제 메모리보다 큰 프로그램을 작동하게 하려면 프로그램의 크기가 실제메모리(물리 메모리) 보다 클 때 전체 프로그램을 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법을 메모리 오버레이(memory overlay) 라고 한다. overlay는 '겹겹이 쌓다', '중첩시키다'라는 뜻으로, 메모리 오버레이는 하나의 메모리에 여러 프로그램을 겹겹이 쌓아놓고 실행하는 것을 말한다. 다시 말해 한정된 메모리에서 메모리보다 큰 프로그램을 실행할 수 있다. 그리고 프로그램 전체가 아니라 일부만 메모리에 올라와도 실행할 수 있다. 프로그램은 개념적으로 한 덩어리지만 일부분만으로도 실행할 수 있다. 스왑 메모리에 모듈B를 가져올 때 먼저 메모리에 올라온 모듈 A를 어딘가에 보관해야 한다. 쉽게 .. 2023. 11. 8.
메모리 관리의 개요 폰 노이만 구조에서 메모리는 유일한 작업 공간이며 모든 프로그램은 메모리에 올라와야 실행할 수 있다. 모든 프로그램은 하드디스크나 SSD와 같은 보조 저장장치에 보관되어 있다. 메모리 이해하기 메모리 구조는 1바이트(B) 크기로 나뉜다. 1B로 나뉜 각 영역은 주소 address로 구분되는데 0번지부터 시작한다. CPU는 메모리에 있는 데이터를 가져오거나 작업 결과를 메모리에 저장하기 위해 주소를 사용한다. 예를 들어 메모리 24번지의 데이터를 CPU로 가져오거나 CPU안에서 생성된 데이터를 메모리의 39번지에 저장한다. 주소는 CPU와 메모리 간 작업의 기준이 된다. 메모리 관리의 이중성 메모리 관리는 운영체제를 비롯해 여러 작업을 동시에 처리할 때 메모리를 어떻게 관리하는가에 관한 문제다. 이처럼 복.. 2023. 11. 7.
프로세스 간 통신 프로세스 간 통신의 개념 하나의 프로세스에 속한 스레드끼리 데이터를 주고받는 것은 어렵지 않다. 그러나 프로세스 간 통신은 다르다. 서로 다른 프로세스는 사용하는 메모리 영역이 다르기 때문에 공유된 메모리를 통하여 통신하는 것이 쉽지 않다. 운영체제는 프로세스와 프로세스끼리 쉽게 데이터를 주고받을 수 있는 통신 방법을 제공하는데 이를 프로세스 간 통신 IPC:Inter Process Communication이라고 한다. 프로세스 간 통신의 종류 - 공유 메모리나 공유 파일을 이용한 통신 프로세스 간 통신 중 가장 원시적인 방식이다. 이 방식에서는 일정한 메모리 영역이나 파일을 공유하고 이를 통하여 데이터를 주고받는다. 데이터를 주고받는 방법을 프로세스끼리 알아서 결정해야 하기 때문에 원시적인 방식이라고 .. 2023. 10. 20.
스레드 스레드의 개념 스레드의 정의 예를 들어 설명하자면 안심 스테이크를 만들기 위해 준비하는 과정을 프로세스 생성 과정으로 , 레시피의 정해진 절차에 따라 요리하는 것을 스레드로 볼 수 있다. 프로세스는 요리 작업 전체와 같고, 스레드는 요리를 완성하기 위해 수행하는 각각의 조리에 해당하는 것이다. 프로세스와 스레드의 차이 개개의 프로세스와 스레드는 서로서로 미치는 영향이 다르다. 프로세스끼리는 약하게 연결되어 있는 반면 스레드끼리는 강하게 연결되어 있다. 멀티태스크 워드프로세스와 프린트 스풀러는 서로 독립적으로 작동하다가 필요할 때 출력할 데이터를 주고받는다. 서로 독립적이라는 것은 워드프로세서가 비정상적으로 종료되어도 프린터 스풀러는 정상적으로 작동한다는 의미이다. 이렇게 서로 독립적인 프로세스는 데이터를.. 2023. 10. 17.
프로세스의 연산 프로세스의 구조 프로세스는 코드 영역, 데이터 영역, 스택 영역으로 구성되어 있다. 코드 영역 code area 코드 영역은 프로그램의 본문이 기술된 곳으로 텍스트 영역 이라고도 한다. 프로그래머가 작성한 프로그램은 코드 영역에 탑재되며 탑재된 코드는 읽기 전용으로 처리된다. 자기 자신을 수정하는 프로그램은 존재하지 않기 때문이다. 데이터 영역 data area 데이터 영역은 코드가 실행되면서 사용하는 변수나 파일 등의 각종 데이터를 모아놓은 곳이다. 본문에 사용되는 데이터가 저장되어 있다. 데이터는 변하는 값이기 때문에 이곳의 내용은 기본적으로 읽기와 쓰기가 가능하다. 스택 영역 stack area 스택 영역은 운영체제가 프로세스를 실행하기 위해 부수적으로 필요한 데이터를 모아놓은 곳이다. 예를 들어 .. 2023. 10. 17.
멀티 프로세싱 멀티코어 시스템 CPU의 성능을 향상하기 위해 CPU의 핵심 기능을 가진 코어를 여러 개 만들거나 동시에 실행 가능한 명령의 개수를 늘리는 방법을 사용한다. 컴퓨터의 성능을 높이기 위해 프로세서를 여러 개 설치하여 사용하는 시스템을 멀티 프로세서 시스템 (multi processor system)이라 부른다. 예를 들어 볶음밥 하나를 만드는 시간은 40분이 걸린다면 한 주방에서 2개를 만드는데 80분이 걸린다. 시간을 단축시키고 싶다면 주방을 2개 만들면 된다. 프로세서 하나만 있는 단일 프로세서 시스템을 멀티 프로세서 시스템으로 바꾸기 위해서는 보드의 설계 변경을 비롯해 많은 변화가 필요하다. 그런데 기존 시스템을 유지한 채 멀티 프로세싱을 할 수 있게 하는 시스템이 있다. 바로 멀티코어 (multi-.. 2023. 10. 16.
728x90