컴퓨터 공학(Computer Science)/OS

컴퓨터 공학(Computer Science)/OS

OS와 인터럽트

OS와 인터럽트 Interrupt 인터럽트만 장치들이 어떤 상황이 발생했음을 CPU에게 알리는 하드웨어적 방법. 인터럽트 발생시 하던 작업을 멈춤 돌아올 주소를 저장 해당되는 ISR()을 실행 ISR()끝나면, 하던 작업을 마저함 인터럽트 종류 하드웨어적 : 입출력 장치들이 전기적 신호를 CPU에게 보냄 소프트웨어적 : 프로그램 내에서 CPU기계명령으로 인터럽트 과정 진행 인터럽트 제어기 인터럽트가 처리되려면, CPU와 인터럽트 제어기들의 하드웨어가 협력해야함. CPU와 입출력 장치 사이에 APIC(인터럽트 제어기)가 사용되며 APIC는 입출력 장치로부터 직접 인터럽트 신호를 받는 I/O APIC장치와 I/O APIC로부터 인터럽트 정보를 받아 CPU핀에 직접 인터럽트 신호 발생시키는 Local APIC..

컴퓨터 공학(Computer Science)/OS

Kernel의 실체

Kernel의 실체 커널은 컴파일된 바이너리 형태로 스토리지에 있다가 컴퓨터 부팅 시에 메모리에 load된다. 커널 코드는 함수들의 집합 커널 코드는 함수들의 집합이다. 실행 중인 응용 프로그램(메모리에 적재된)을 프로세스라 부른다. 하지만 커널은 프로세스가 아니다. 만약, app2의 실행중에 System Call을 유발시키고 커널이 동작한다고 가정해보자. 그러면 User mode에서 실행중이다가 kernel mode로 바뀌고 kernel code를 실행한다. 여기서 kernel이 프로세스가 되는게 아닌, app2가 프로세스이다. 커널은 프로세스가 아니다. Kernel이 실행중? kernel은 단지 응용 프로그램에 의해 System Call, interrupt가 발생하여 커널 코드가 실행되고 있을 뿐 K..

컴퓨터 공학(Computer Science)/OS

Kernel, user mode, kernel mode

User mode, Kernel mode CPU는 User mode, Kernel mode 2가지 중 한 모드에서 동작한다. 어떤 모드로 동작할 것인지는 CPU내의 mode register에서 결정한다. 응용 프로그램은 user mode에서, 커널 코드는 kernel mode에서 동작한다. User mode User mode에서는 User Space만 접근할 수 있다. 만약, Kernel Space에 접근하게 되면 오류를 발생시킨다. User mode에서는 어떤 하드웨어에도 접근할 수 없다. 또 다른 응용 프로그램에게 할당된 메모리에도 접근할 수 없다. 특권 명령(privileged instruction)도 실행할 수 없다. Kernel mode kernel mode 에서는 모든 메모리 공간 접근가능하며..

컴퓨터 공학(Computer Science)/OS

커널과 시스템 호출

Kernel과 System call 커널이란 부팅 후부터 메모리에 상주하며, CPU, 메모리, 캐시 같은 하드웨어 자원을 관리하고, 프로세스, 파일 시스템 관리 등 운영체제의 핵심적인 기능을 실행하는 코드 커널 코드는 구체적으로 함수의 형태로 존재한다. 응용 프로그램은 Function Call이라는 방식을 통해 응용 프로그램 내의 함수나 라이브러리의 함수를 호출하지만, 커널에 있는 함수는 호출할 수 없다. 응용 프로그램이 커널에 있는 함수를 호출할 수 있는 유일한 방법은 System Call 이라는 방식이다. OS Kernel 인터페이스 System Call : 커널과 응용프로그램 사이 Interrupt : 커널과 하드웨어 장치 사이 이 2가지 방식을 이용해 하드웨어와 응용프로그램 사이를 중계한다. Sy..

컴퓨터 공학(Computer Science)/OS

배치(batch) OS, 다중 프로그래밍, 시분할 시스템

Batch OS 컴퓨터의 idle time을 줄여 활용률을 향상시키기 위해서 Batch OS가 개발되었다. Batch는 개발자가 작성한 punched card(천공 카드)의 한 묶음을 의미하는데, batch 하나가 일종의 프로그램인 셈이다. 이런 일련의 batch들을 한꺼번에 실행하되, 한번에 한개씩 순서대로 처리한다. 이것을 batch processing(배치 처리)라고 함. 즉, 하나의 프로그램이 완전히 끝나야 다음 프로그램 실행으로 넘어갈 수 있다. 다중 프로그래밍(multi-programming) 컴퓨터의 throughput(처리율)을 높이기 위해 CPU를 효율적으로 사용하기 위해 고안한 방법. CPU가 쉬지 못하게 하는게 목적이다. I/O작업시에는 CPU가 일을 하지 않는데, I/O작업시에도 C..

Jminu
'컴퓨터 공학(Computer Science)/OS' 카테고리의 글 목록