CS STUDY/운영체제 (14) 썸네일형 리스트형 PCB & Context Switching PCB(Process Control Block) 개념 특정 프로세스에 대한 정보를 담고 있는 자료구조 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓은 곳 프로세스의 상태 관리와 문맥 교환을 위해 반드시 필요 프로세스가 생성될 때마다 고유의 PCB 생성, 완료되면 제거 그럼 어디에 있니..? 일반 사용자는 접근하지 못하는 보호된 메모리 영역에 존재 or 커널 메모리(프로세스 테이블) 구조 Pointer: 프로세스의 현재 위치를 저장하는 포인터 정보 Process ID(Process Number): 프로세스 식별자 Process State: 프로세스의 각 상태(생성, 준비, 실행, 대기, 종료)를 저장 Program Counter: 프로세스를 위해 실행될 다음 명령어의 주소를 포함 Register: .. IPC(Inter Process Communication) IPC(Inter Process Communication) 멀티 스레드 환경에서는 서로 공유하는 공간이 있어 데이터를 주고 받을 수 있지만 프로세스는 독립된 구조인데 어떻게 자원을 공유할 수 있을까? 개념 프로세스들끼리 서로 데이터를 주고받는 행위 종류 1. PIPE(익명 PIPE, Anonymous PIPE) 두 개의 프로세스가 파이프로 연결되면, 하나의 프로세스는 데이터를 쓰기만, 다른 하나는 읽기만 가능(반이중 통신) read()와 write()이 block mode로 작동되기에 read가 끝나기 전에는 write 불가 스트림 기반(데이터 흐름) 만약 읽기/쓰기를 모두 하기 원하면(전이중 통신) 두 개의 파이프 필요 2. Named PIPE(FIFO) 익명 PIPE의 경우 통신을 할 프로세스가 명확.. 인터럽트(Interrupt) 인터럽트(Interrupt) 개념 CPU가 프로그램을 실행하고 있을 때 예외 상황이 발생해 처리가 필요한 경우 현재 실행 중인 작업을 중단하고 발생한 상황을 CPU에게 알려 처리한 후에 다시 실행 중인 작업으로 복귀하는 것 종류 1. 외부 인터럽트 CPU 코어 외부에서 어떤 일이 발생한 것을 전기적인 신호로 CPU에게 통지하는 경우 정전 ·전원이상 인터럽트: 정전 또는 전원 공급 기계고장 인터럽트: CPU 및 기타 하드웨어의 오류로 인한 인터럽트 외부 신호 인터럽트: Timer 나 Operator로 인한 인터럽트 입출력 인터럽트: 입출력의 종료나 입출력의 오류로 인한 인터럽트 2. 내부 인터럽트 CPU 내부에서 실행중인 프로세스에서 오류가 발생했을 때 인터럽트에 걸리는 경우 잘못된 명령이나 데이터를 사용.. 프로세스 & 스레드 프로세스와 스레드의 차이 프로세스(Process): 운영체제로부터 자원을 할당받은 작업의 단위 스레드(Thread): 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 프로세스 개념 프로세스는 메모리에 올라와 실행 중인 프로그램의 독립 객체 프로그램을 실행시키면 프로세스 객체 생성 프로세스는 OS로부터 시스템 자원을 할당받아 실행되는데, 이때 할당받는 시스템 자원은 CPU 시간, 운영을 위해 필요한 주소 공간, 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap) 할당 Code: 실행할 프로그램의 코드나 명령어들이 기계어 형태로 저장된 영역 Data: 전역 변수와 정적 변수가 저장되는 영역 , 프로그램이 실행되면서 할당되고 종료되면서 소멸 Stack: 함수.. 운영체제란(2) 3. 네트워킹 컴퓨터는 Local Area Network(LAN)이라는 단위로 연결된다. 네트워크 상의 컴퓨터끼리 통신하기 위해서는 프로토콜이라는 정해진 규칙이 필요한데 TCP/IP나 HTTP와 같은 프로토콜의 지원도 OS의 역할이다. * LAN: 근거리 통신망, 가까운 지역을 하나로 묶는 네트워크 * WAN:광역 통신망, 먼거리의 지역을 하나로 묶는 네트워크 프로토콜 TCP/IP 프로토콜: TCP는 데이터를 일정한 크기로 분할, IP는 TCP가 분할한 데이터에 송신처를 붙여서 네트워크로 보낸다. OS가 지원 HTTP 프로토콜: 웹브라우저로부터의 요청에 따라 HTML 파일 또는 그림을 보내고 받는다. 애플리케이션 레벨에서 지원 OSI참조모델 트랜스포트층, 네트워크층, 데이터링크층: OS가 지원 애플리케이.. 운영체제란(1) 운영체제란? 사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용 프로그램이 동작하도록 지원 컴퓨터 시스템 자원을 효율적으로 관리하여 응용 프로그램이 원활하게 동작 운영체제의 역할 1. 프로세스 관리 프로세스(Process)란? 프로그램이 메모리에 적재된 상태, 프로그램의 인스턴스 "운영체제에서의 하나의 작업단위" 메인 메모리에 할당되어 현재 실행 중인 상태인 프로그램 스케줄링의 대상이 되는 작업(task) Code: 실행할 프로그램의 코드나 명령어들이 기계어 형태로 저장된 영역, CPU는 이 영역의 명령어들 하나씩 처리 Data: 코드에서 선언한 전역 변수와 정적 변수가 저장되는 영역, 프로그램이 실행되면서 할당되고 종료되면 소멸 Stack: 함수 안에서 선언된 지역변수, 매개변수, 리턴값등이 .. 이전 1 2 다음