운영체제 (4) 썸네일형 리스트형 [운영체제] 프로세스, 스레드 프로세스(Process) '프로그램'은 기본적으로 하드디스크에 저장되는 실행코드를 의미합니다. '프로세스'는 이 프로그램이 메모리 위에 적재되고, CPU를 점유할 수 있는 상태입니다. 프로세스제어블록 (PCB) 프로세스의 정보가 저장되는 운영체제의 자료구조입니다. 주로 커널스택에 저장되며 커널이 이 PCB를 이용하여 프로세스를 관리합니다. 많이 들어본 컨텍스트 스위칭의 컨텍스트가 이놈을 지칭하기도 합니다. 주요 구성요소 1) PID : 프로세스의 식별자 2) Process State : 프로세스의 상태 3) PC : 다음에실행할 명령어의 주소 4) 레지스터 5) 스케쥴링정보 : 우선순위 등 프로세스의 메모리 영역 프로세스가 메모리 위에 적재되면 그 영역을 크게 다음과같이 나눌 수 있습니다. 여러 프로세스.. [운영체제] 컨텍스트스위칭 개요 프로그램은 컴퓨터(프로세서)가 처리할 수 있는 일련의 코드이다 (이거 지난글 링크어케거냐) 프로세스는 프로그램을 프로세서가 읽어 메모리위에 올린 상태이다. 프로세서가 프로세스를 처리하는 방식은 여러가지가 있다. 멀티프로그래밍, 멀티프로세싱 컨텍스트 스위칭은, 하나의 프로세서가 여러개의 프로세스를 처리할때 적용되는 이론이다. 컨텍스트(Context) 란? 프로세서가 프로세스를 처리하기 위해 사용되는 리소스를 총칭한다. 적은 범위에서는 PCB(cpu의 레지스터, pid, pc 등) 를 컨텍스트로 보기도 하고, 메모리위에 적재된 프로세스가 가진 독립적인 영역(코드, 힙, 스택) 을 포함하는 넓은 범위를 컨텍스트로 보기도 한다. 컨텍스트 스위칭 (Context Switching) 이란? 프로세서가 A 프로.. [운영체제] 세마포어, 뮤텍스 임계구역 (Critical Section) 세마포어, 뮤텍스를 정리하기에 앞서 임계구역에 대한 개념이 필수적입니다. 다수의 프로세스가 처리되는 환경에서, 프로세스들은 일부 자원을 공유하게 됩니다. 이때 프로세스가 공유자원에 접근하게 되는 부분(영역)이 Critical Section(CS)입니다. 동기화(Synchronization) 여러개의 프로세스, 혹은 여러개의 스레드가 공유자원에 접근하게 되면 데이터가 마구잡이로 변할수도있습니다. 데이터가 무질서하게 수정되지 않고, 프로세스와 스레드의 접근을 제어하여 데이터의 정합성이 지켜지는 것을 동기화 라고 합니다. 공유자원에 대한 접근이 제어되면서 데드락이 발생하기도 하는데, 다음번에 알아보도록 합니다. 세마포어 (Semaphore) 공유자원의 동기화 방법 중.. [운영체제] 페이징, 세그멘테이션 가상메모리 실제 5MB의 프로그램을 실행하는데, 메모리의 크기는 4MB이다. 이때 사용하는 기법. 일부만 메모리에 로드하고 나머지는 보조기억장치에 두고 실행함. 페이징 기법 Paging 페이지 Page 프로세스를 고정적 크기로 나눈 단위 프로세스 = 페이지의 집합 프레임 Frame 실제 메모리를 고정적 크리고 나눈 단위 메모리 = 프레임의 집합 내부단편화 프로세스가 총 3500Byte = 1000Byte페이지*4 페이지가 매핑되는 마지막 프레임에는 500Byte의 공간이 버려지는 현상. 페이징기법은 CPU가 메모리에 연속적으로 적재된 프로세스를 사용하고 있다고 생각하도록 속이는 것이다. 실제로 CPU 가 메모리에 접근할 때는 페이징테이블을 통해 가상메모리에 매핑된 실제 메모리의 주소로 접근한다. 세그먼테.. 이전 1 다음