반효경 교수님의 운영체제 수업을 정리한 내용입니다
컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
컴퓨터 시스템의 자원을 효율적으로 관리
용어
멀티태스킹: 컴퓨터 시스템이 동시에 여러 작업을 수행할 수 있는 능력. 여러 프로그램이 동시에 실행되는 것처럼 보이도록 하는 기술
멀티프로그래밍: 컴퓨터 시스템이 동시에 여러 프로그램을 메모리에 올려놓고 실행하는 기술
멀티 프로세스: 컴퓨터 시스템이 동시에 여러 개의 독립적인 프로세스를 실행하는 기술. 각 프로세스는 운영 체제로부터 독립적인 메모리 공간과 자원을 할당받아 실행된다
시분할: CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
-> 위 4개의 용어들은 비슷한 의미로 혼용됨
시스템콜: 사용자 프로그램이 커널 함수를 호출하는것
인터럽트
Trap: 소프트웨어 인터럽트
Device Controller
: 컴퓨터 시스템에서 하드웨어 장치(입출력 장치 등)를 제어하고 관리하는 부분. 해당 장치의 동작과 상호작용을 담당하여, 컴퓨터 시스템과 장치 간의 데이터 흐름을 조절
-> 두 경우 모두 I/O완료는 인터럽트로 알려줌
DMA(Direct Memomy Access) 직접 메모리 접근
:컴퓨터 시스템에서 메모리 전송을 위해 사용되는 기술로써 CPU의 개입 없이 주변장치와 메모리 간의 데이터 전송을 수행
-> 기본적으로, CPU는 데이터를 입출력 장치와 주변장치 간에 전달하기 위해 관여해야 하는데 이러한 CPU 대신 DMA 컨트롤러(DMA Controller)가 데이터 전송을 관리하고, CPU는 다른 작업을 수행할 수 있다.
저장장치 계층 구조
: 속도가 빠르고 값 비싼 저장장치를 CPU가까이 두고, 값 싸고 용량 큰 저장장치를 반대쪽에 배치
프로그램의 가상 메모리 공간 구성: code, data, stack
사용자 프로그램이 사용하는 함수
1. 사용자 정의 함수: 자신의 프로그램에서 정의한 함수
2. 라이브러리 함수: 자신의 프로그램에서 정의하지 않고 가져다 쓴 함수
3. 커널 함수: 운영체제 프로그램의 함수
-> 커널 함수의 호출 = 시스템 콜
글이 잘 정리되어 있네요. 감사합니다.