하드웨어 자원들을 관리하는 프로그램들의 집합
응용프로그램들을 위한 시스템 서비스 제공자(system service provider)
하드웨어와 응용프로그램들을 이어주는 연결부
위에 언급된 모두 해당
시스템 콜(system call)
API(Application Programming Interface)
라이브러리(library)
어셈블리 명령어(assembly instruction)
커널은 운영체제의 핵심을 구성하는 프로그램이다.
커널은 부팅하는 동안 메모리를 로드하는 운영체제의 첫 부분이다.
커널은 운영체제를 실행하는 중에는 읽어들일 수 없는 다양한 모듈로 구성되어 있다.
커널은 컴퓨터의 전체 세션동안 메모리에 남아있다.
전력 문제
프린터 용지 부족
네트워크 연결 실패
사용자 정의 명령을 해석하고 실행하기 위함
API와 응용프로그램 간의 인터페이스를 제공하기 위함
운영체제에서 파일들을 처리하기 위함
위에 언급된 모두 해당 안됨
시분할 멀티플렉싱(time division multiplexing)
공간 분할 멀티플렉싱(space division multiplexing)
시공간 분할 멀티플렉싱(time and space division multiplexing)
로그 파일
네트워크
실행중인 다른 프로세스
메모리
VxWorks
Windwos CE
RTLinux
Palm OS
Microkernel
Monolithic kernel
Hybrid kernel
Exokernel
Boot program
Setup program
Initializer
Bootstrap program
버스(bus)를 통해 CPU에 시그널(signal)을 보낸다.
인터럽트를 발생시키는 명령어를 직접 호출한다.
시스템 콜을 통해 특별한 명령어를 수행한다.
키보드 또는 마우스 입력을 통해 발생시킨다.
에러에 의해 하드웨어로부터 발생된 인터럽트
에러에 의해 소프트웨어로부터 발생된 인터럽트
에러에 의해 유저로부터 발생된 인터럽트
Information Service Request
Interrupt Service Request
Interrupt Service Routine
Information Service Routine
인터럽트 핸들러(interrupt handler)를 가리키는 주소
특정 주소와 연관된 고유 장치 번호
인터럽트에 할당되는 고유 번호
현재의 컨텍스트를 저장한다.
인터럽트 벡터가 가리키는 코드를 읽고 실행한다.
처리가 끝나면 인터럽트가 발생하기 전의 컨텍스트로 되돌린다.
CPU 범용 레지스터
프로그램 카운터(Program counter)
프로세스의 스택
파이프(Pipe)
Driving Memory Access
Digital Memory Access
Direct Memory Access
Direct Memory Avoidance
Fragmentation
Defragmentation
Blocking
Caching
메모리의 크기가 2의 배수가 아닐 때 발생한다.
빈 공간이 쪼개져있어 제대로 사용하지 못하는 상황이다.
용량이 큰 파일을 이동시킬 때 발생한다.
실제 사용량보다 큰 크기의 영역이 할당되었을 때 발생한다.
같은 주소 공간을 사용하는 프로세스 간의 통신
같은 주소 공간을 사용하지 않는 프로세스 간의 통신
네트워크를 통한 프로세스 간의 통신
통신이 필요없는 프로세스 간 동기화 기법
고정되어야 한다
가변이어야 한다
고정일 수도 있고 가변일 수도 있다
운영체제마다 다르다
Communication link
Message-passing link
Synchronization link
Process link
저장소(storage)
프레임(frame)
페이지(page)
행(row)
Processor Control Buffer
Processor Control Block
Process Control Buffer
Process Control Block
Thread Lookaside Block
Thread Lookaside Buffer
Translation Lookaside Block
Translation Lookaside Buffer
© Seunggon Kim