-> 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하는 역할
-> 컴퓨터의 자원을 관리하는 운영체제의 핵심부분
-> 서로 다른 2개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 경우의 접점이나 경계면
오픈소스란?
누구나 검사, 수정 및 개선할 수 있는 소스코드가 포함된 소프트웨어
컴퓨터 시스템은 다음과 같이 4개의 구성품으로 나눌 수 있다.
1)하드웨어 : 기본적인 컴퓨터 자원 제공
-> CPU, memory, I/O devices
2)운영체제 : 어플리케이션과 사용자간의 하드웨어 제어 및 조정
3)응용프로그램(Application programs):
시스템 리소스를 사용하여 사용자의 컴퓨팅 문제를 해결하는 방법을 정의, 쉽게 이야기하면 운영체제에서 실행되는 모든 소프트웨어
-> 워드 프로세서, 컴파일러, 웹 브라우저, 데이터베이스 시스템, 비디오 게임
4)사용자(User):
-> 사람, 기계, 다른 컴퓨터들

-> 시점에 따라 다름.
-> 사용자는 편리함과 우수한 성능을 원하고 리소스 활용에는 별 관심없음.
-> 그러나 메인프레임이나 미니컴퓨터와 같은 공유 컴퓨터는 모든 사용자를 만족시켜야 함.
-> 워크스테이션과 같은 전용 시스템의 사용자는 전용 리소스가 있지만 서버의 공유 리소스를 자주 사용함.
-> 휴대용 컴퓨터는 리소스가 부족하고 사용성과 배터리 수명에 최적화되어 있음.
-> 장치나 자동차에 내장된 컴퓨터와 같이 사용자 인터페이스가 거의 없거나 전혀 없는 컴퓨터도 있음.
- OS는 "리소스 할당자" 입니다.
-> 모든 리소스를 관리하고 상반된 요청 사이에서 효율적인 리소스 사용을 결정합니다.- OS는 "제어 시스템" 입니다.
-> 프로그램의 실행을 제어하여 오류 및 컴퓨터의 부적절한 사용을 방지합니다.
커널(Kernel)이란?
컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로서 컴퓨터 자원들을 관리하는 역할
펌웨어(firmware)란?
-> ROM에 포함된 소프트웨어, 하드웨어된 소프트웨어
컴퓨터 시스템의 활용범위가 넓어지고 소프트웨어에서 전달되는 정보 역시 방대해지다 보니 하드웨어 내 제한된 종류의 논리회로만으로는 다양한 상황에 모두 대응하기 어렵게 되었다.
새로운 소프트 웨어가 등장할 때마다 그에 해당하는 기능을 갖춘 논리회로를 추가한 하드웨어를 새로 만들기엔 비용이나 시간이 낭비된다.
그래서 개발자들은 하드웨어 내부의 제어부분에 저장공간을 만들어 논리회로 기능을 보강하거나 대신하는 프로그램을 넣을 수 있도록 하였다. 이것이 바로 펌웨어이다.
ex) 버튼을 눌렀을 때 led켜짐, cd를 넣으면 어떠한 기능을 할 수 있도록 준비
ROM이란?
(Read Only Memory)의 약자로 전원이 차단되어도 데이터를 계속 갖고 있기 때문에 "비휘발성 메모리"라고 한다. (기억장치)
EPROM이란?
기억장치 ROM의 한 종류이고 자외선을 자용하여 기록된 내용을 지우고, 전류로 다시 기록 할 수 있는 ROM 메모리컴퓨터 시스템 조직
컴퓨터시스템 운영
-> 공유 메모리에 대한 액세스를 제공하는 하나 이상의 CPU, 장치 컨트롤러가 공통 버스를 통해 연결됩니다
-> 메모리 사이클을 위해 경쟁하는 CPU와 디바이스의 동시 실행

disk란?
컴퓨터에서 데이터를 저장하는 데 사용되는 주요한 저장 장치
--
디바이스 컨트롤러(device controller)(장치제어기)란?
특정한 하드웨어 장치를 제어하고 관리하는 부품입니다. 해당 I/O 장치를 관리하는 일종의 작은 CPU로 볼 수 있습니다.
ex) 키보드, 마우스, 프린터 등이 입출력을 처리하기위해 디바이스 컨트롤러를 필요로함
로컬 버퍼(local buffer)란?
디바이스 컨트롤러가 데이터를 일시적으로 저장하는 장소입니다.
ex) 카톡에 move라는 단어를 치고 enter를 누르면 move가 보내진다. 이때 enter를 누르기 전 move가 저장되는 곳이 로컬 버퍼입니다.
메인 메모리란?
메인 메모리는 RAM(Random Access Memory)라고도 불리며 중앙 처리 장치(CPU)가 데이터를 읽고 쓸 수 있는 주기억 장치입니다. CPU가 프로그램을 실행하는 동안 데이터와 명령어를 임시로 저장하는 역할을 하며 RAM은 휘발성 메모리입니다. 즉, 전원이 꺼지면 데이터는 삭제됩니다.
인터럽트(interrupt)란?
컴퓨터에서 발생하는 이벤트로서, 현재 수행 중인 프로그램의 실행을 중단하고, 다른 프로그램이나 하드웨어 장치의 요청에 응답하는 원리입니다.
-> 인터럽트(interrupt)는 일반적으로 인터럽트 벡터(interrupt vector)를 통해 모든 서비스 루틴의 주소를 포함하는 인터럽트 서비스 루틴에 제어권을 전달합니다.
-> 인터럽트 아키텍처는 인터럽트된 명령의 주소를 저장해야 합니다.
-> 트랩 또는 예외(exception)는 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어에서 생성된 인터럽트입니다.
-> 운영 체제는 인터럽트기반(interrupt-driven)이다.
- 인터럽트(interrupt)란?
인터럽트(Interrupt)는 프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것입니다. 비동기식 인터럽트 또는 하드웨어 인터럽트라고 합니다. 인터럽트는 현재 실행 중인 프로그램의 흐름을 중단하고, 우선순위가 높은 작업을 처리하는 데 사용됩니다. 예를 들어, 키보드나 마우스에서 입력이 발생하면 해당 장치로부터 인터럽트가 발생하여 CPU에게 해당 입력을 처리하도록 알립니다.
- 비동기식(Asynchronous)이란?
어떤 기준에 맞춰서 이벤트가 발생하는 것이 아니라 그때그때 정해진 기준없이 이벤트가 발생하는 것을 의미합니다.
인터럽트 벡터(interrupt vector)란?
인터럽트 벡터는 인터럽트가 발생했을 때, 그 인터럽트를 처리할 수 있는 서비스 루틴들의 주소를 가지고 있는 공간입니다. 컴퓨터 시스템에서 인터럽트가 발생했을 때, 해당 인터럽트를 처리하기 위한 서비스 루틴의 주소를 가리키는 특별한 데이터 구조입니다.
인터럽트 서비스 루틴(interrupt service routine)(ISR)?
어떤 인터럽트가 발생했을 때 해당 인터럽트를 어떻게 처리하고 작동해야 할지에 대한 정보로 이루어진 프로그램이다.
인터럽트가 발생하면 컴퓨터는 해당 인터럽트에 대응하는 서비스 루틴의 주소를 인터럽트 벡터에서 찾아서 해당 서비스 루틴으로 제어를 전달합니다.
- 트랩(trap) or 예외(exception)이란?
트랩(trap)은 실행중인 프로그램 내에 테스트를 위해 특별한 조건을 걸어놓은 것을 의미합니다. 동기식(Synchronous) 인터럽트 또는 소프트웨어 인터럽트라고 합니다.
- 동기식(Synchronous)이란?
기준에 맞추어 또는 시간에 맞추어 정해진 일을 진행시키는 것
인터럽트기반(interrupt-driven)이란?
데이터의 입출력이 이루어지는 동안 CPU는 다른 작업을 할 수 있기 때문에 현대 운영체제는 인터럽트 기반의 시스템을 사용하고 있습니다.
레지스터란?
CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치입니다.
프로그램 카운터(Program counter, PC)란?
CPU 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 명령어의 주소를 가지고 때문에 "명령어 포인터"라고도 합니다.
폴링(polling)이란?
무한 루프에서 이벤트의 발생여부를 계속 살펴보다가, 이벤트가 발생하는 경우 해당 작업을 실행하는 방법입니다.
백터형 인터럽트 시스템이란?
인터럽트가 발생할 때마다 인터럽트를 요청한 장치가 인터럽트 서비스 루틴의 시작번지를 CPU에게 전송하거나, 또는 CPU에게 전송하거나, 또는 CPU가 각 인터럽트의 종류에 따라 미리 지정된 메모리 번지에서 인터럽트 벡터를 읽어서 이를 인터럽트 서비스 루틴의 시작번지로 사용하는 방식입니다.
I/O가 시작된 후 I/O완료 시에만 사용자 프로그램으로 컨트롤이 돌아갑니다.
-> Wait(대기) 명령은 다음 인터럽트까지 CPU를 대기시킵니다.
-> 대기 루프(메모리 엑세스를 위한 경쟁)
-> 최대 한 번의 I/O 요청을 처리할 수 있으며 동시에 I/O 처리를 할 수 없습니다.
I/O가 시작되면, I/O 완료를 기다리지 않고 제어가 사용자 프로그램으로 반환됩니다.
-> 시스템 콜 - 사용자가 I/O 완료를 기다릴 수 있도록 OS에 요청합니다.
-> 디바이스 상태 테이블은 각 I/O 장치에 대한 항목을 포함하며, 해당 장치의 유형, 주소 및 상태를 나타냅니다.
-> OS는 I/O 디바이스 테이블에 인덱스를 지정하여 장치 상태를 확인하고, 인터럽트를 포함하는 테이블 항목을 수정합니다.
시스템콜이란?
사용자 프로그램이 특정 기능을 실행하기 위해 운영 체제에 요청할 때 시스템콜을 사용합니다.
'테이블'이란?
데이터를 구조화하고 조직하는 데 사용되는 일반적인 개념입니다.
컴퓨터 저장의 기본 단위는 비트(bit)입니다. 비트는 0과 1 두 가지 값 중 하나를 포함할 수 있습니다. 컴퓨터의 모든 저장은 비트에 기초합니다.
ex) 충분한 비트가 주어지면 컴퓨터가 숫자, 문자, 이미지, 영화, 소리, 문서, 프로그램 등 많은 것을 나타낼 수 있음
바이트(byte)는 8비트이고 대부분의 컴퓨터에서 편리한 정보조각 중 가장 작습니다. 덜 일반적인 용어는 단어로 주어진 컴퓨터 아키텍처의 고유 데이터 단위입니다.
ex) 대부분의 컴퓨터에는 비트를 이동하라는 명령이 없지만 바이트를 이동하라는 명령이 있음.
단어는 하나 또는 그 이상의 바이트로 구성됩니다. 컴퓨터는 한 번에 바이트가 아닌 기본 단어 크기로 많은 작업을 실행합니다.
ex) 64비트 레지스터와 64비트 메모리 주소 지정을 가진 컴퓨터는 일반적으로 64비트(8바이트) 워드를 가지고 컴퓨터는 한 번에 바이트가 아닌 기본 단어 크기로 많은 작업을 실행합니다.
컴퓨터 스토리지는 대부분의 컴퓨터 처리량과 함께 일반적으로 바이트 및 바이트 모음으로 측정되고 조작됩니다.
(ㅋㅁㄱㅌㅍ) ->(먹기에) 커? 먹고 타파(해)라고 순서를 외우심이 어떨지....
컴퓨터 제조업체들은 종종 이 숫자들을 반올림하여 1메가바이트는 100만 바이트, 1기가바이트는 10억 바이트라고 말합니다. 네트워킹 측정은 비트 단위로 주어지는데, 이는 네트워크가 한 번에 데이터를 조금씩 이동시키기 때문입니다.
- 섹터란?
트랙을 구성하는 최소 단위 = 가장 작은 저장 단위- 트랙이란?
데이터가 저장되는 길. 트랙은 섹터로 구성되며 섹터에 데이터가 저장되고, 그 섹터가 쭉 나열되어 있는 것이 트랙

솔리드 스테이트 디스크(solid state disk)(SSD)란?
전자식 구조로, 반도체 기반의 메모리 칩으로 데이터를 저장하는 장치
*참고사항
