목록CS공부 (55)
CS 공부

프로세스 스케줄러 프로세스 제어 블록의 우선순위 이용하여 준비 리스트의 프로세스 처리 준비 리스트의 프로세스는 프로세서 중심 프로세스와 입출력 중심 프로세스로 구분 입출력 중심 프로세스는 속도가 느리면서 빠른 응답 요구하는 단말기 입출력 프로세스에 높은 우선순위 부여, 속도가 빠른 디스크 입출력 프로세스에는 낮은 우선순위 부여 우선순위가 낮은 프로세스에는 시간을 많이, 우선순 위가 높은 프로세스에는 적게 할당 입출력 중심 프로세스는 프로세서를 짧게 자주 사용하도록 하고, 프로세서 중심 프로세스 프로세서를 길게 사용하되 사용 횟수를 줄여 균형 유지 프로세스의 문맥 교환 발생 실행 중인 프로세스에 인터럽트가 발생하면 운영체제가 다른 프로세스를 실행 상태로 바꾸고 제어를 넘겨주어 프로세스 문맥 교환 발생 인터..

프로세스의 정의(1960년대 멀틱스 운영체제에서 처음 사용) IBM 운영체제에서의 작업(task) 실행 중인 프로그램 비동기적(asynchronous) 행위 (가장 일반적인 정의) 실행 중인 프로시저 실행 중인 프로시저의 제어 추적 운영체제에 들어 있는 프로세스 제어 블록PCB 프로세서에 할당하여 실행할 수 있는 개체 디스패치(dispatch)가 가능한 대상 (디스패치란 비 실행 상태에서 실행 상태로 전환시켜주는 것 그와 반대되는 말로는 인터럽트가 있다) Spooling Simultaneous Peripheral Operation On-Line의 줄임말로서 컴퓨터 시스템에서 중앙처리장치와 입출력장치가 독립적으로 동작하도록 함으로써 중앙처리장치에 비해 주변장치의 처리속도가 느려서 발생하는 대기시간을 줄이기..

부팅 서비스 컴퓨터 하드웨어 관리, 프로그램을 실행할 수 있도록 운영체제를 메인 메모리에 적재하는 과정 부트 로더 부트스트랩 로더(bootstrap loader)의 줄인 말로 하드디스크와 같은 보조 기억장치에 저장된 운영체제를 메인 메모리에 적재하는 ROM에 고정시킨 소규모 프로그램 사용자 서비스 프로그래머가 프로그래밍 작업을 쉽게 수행할 수 있도록 함 시스템 서비스 시스템의 효율적인 동작 보장 시스템 호출 프로그램이 운영체제의 기능을 서비스 받을 수 있는 프로그램과 운영체제 간의 인터페이스 제공 사용자 인터페이스 제공 사용자 인터페이스 : 사용자와 컴퓨터 간의 상호작용 발생 공간(CLI, 메뉴, GUI 등 구현) CLICommand Line Interface(명령 라인 인터페이스) 사용자가 키보드 등으..

다중 프로그래밍 시스템 일괄처리 시스템은 프로세서가 다른 작업 수행시 입출력 작업 불가능 ー> 프로세서와 메인 메모리 활용도 떨어짐 -> 다중 프로그래밍 도입 프로세서가 유휴 상태일 때 실행 중인 둘 이상의 작업이 프로세서를 전환 (인터리빙)하여 사용할 수 있도록 동작 다중 프로그래밍의 특징 1) 높고 효율적인 프로세서 사용률(효율적인 운영) 증가 2) 많은 사용자의 프로그램이 거의 동시에 프로세서를 할당받는 듯한 느낌 3) 여러 작업을 준비 상태로 두려면 이를 메모리에 보관, 일정 형태의 메모리를 관리해야 함 -> 아주 복잡 4) 여러 작업이 수행할 준비를 갖추고 있으면, 이 중 하나를 선택하는 결정 방법 필요 (인터럽트 이용 수행하는 프로세서 스케줄링의 다중 프로그래밍으로, 현재 운영체제의 중심 주제..

사용자: 컴퓨터를 사용하는 사람이나 장치 다른 컴퓨터등을 의미 SW: 컴퓨터에 기능 수행에 필요한 모든 프로그램 하드웨어: 기본 연산 자원을 제공하는 프로세서, 메모리 주변장치등 조정자: 운영 요소 사용을 제어하면서 사용자와 응용프로그램 간에 통신할 수 있게 함. 작업을 할 수 있는 환경만 제공 자원 할당자나 관리자 : 각 응용 프로그램에 필요한 자원 할당, 자원 할당 방법 결정 응용 프로그램과 입출력장치 제어자 : 다양한 입출력장치와 응용 프로그램 제어 운영체제의 정의 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어하고 자원을 할당 및 관리하며 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 SW 역할 하드웨어 및 사용자,응용 프로그램, 시스템 프로그램 사이에서 인터페이스 제공..

컴퓨터 시스템의 작업 처리 순서 입력장치로 정보를 입력받아 메모리에 저장 메모리에 저장한 정보를 프로그램 제어에 따라 인출하여 연산장치에서 처리 처리한 정보를 출력장치에 표시하거나 보조 기억장치에 저장 명령어와 데이터 입력장치로 컴퓨터에 유입되는 정보 명령어 명령어는 실행할 산술·논리 연산의 동작을 명시하는 문장으로, 어떤 작업을 수행하는 명령어 집합 프로그램 명령어의 기본구조 연산 부호(OPCode or operation code) 프로세서가 실행할 동작인 연산을 지정 산술연산, 논리연산, shift, 보수 등 연산정의 연산부호가 n비트면 최대 2^n개 연산가능 피연산자(operand) 연산할 데이터 정보 저장 데이터는 레지스터나 메모리 가상기억장치 입출력장치등에 위치할 수 있는데 보통 데이터 자체보다..

컴퓨터 시스템이란 데이터를 처리하는 물리적인 기계장치인 하드웨어(HardWare) +어떤 작업을 지시하는 명령어로 작성한 프로그램인 소프트웨어(SoftWare) 하드웨어는 프로세서, 메모리, 주변장치로 구성 이들은 시스템 버스로 연결 프로세서 CPU(중앙 처리장치) 컴퓨터의 모든 장치의 동작을 제어하고 연산 수행 (CPU는 산술논리 연산장치(ALU) 제어장치 레지스터로 구성) 프로세스의 레지스터의 분류 용도에 따른 분류 전용 레지스터 범용 레지스터 사용자가 정보 변경 가능 여부에 따른 분류 사용자 가시 레지스터 사용자 불가시 레지스터 저장하는 정보의 종류에 따른 분류 데이터 레지스터 주소 레지스터 상태 레지스터 종류 설명 데이터 레지스터 DR (Data Register) 하는 일: 함수의 연산에 필요한 ..

Blocking I/O blocking I/O 작업은 유저레벨에서 직접 수행할 수 없다. 실제 I/O를 수행하는것은 커널레벨에서만 가능하다. 유저 프로세스(또는 쓰레드)는 커널에게 I/O를 요청해야한다. I/O에서 블로킹 형태의 작업은 유저 프로세스가 커널에게 I/O를 요청하는 함수를 호출하고, 커널이 작업을 완료되면 함수가 작업 결과를 반환한다. I/O 작업이 진행되는동안 유저 프로세스는 자신의 작업을 중단한 채 대기해야한다. I/O작업이 CPU자원을 거의 쓰지 않기 때문에 이런 형태의 I/O는 리소스 낭비가 심하고 비효율적이다. 리눅스 소켓 통신 방식이 블로킹 방식 Non-Blocking I/O Blocking 방식의 비효율성을 극복하고자 만들어진 것이 Non-Blocking 방식이다. Non-Blo..