분류 전체보기
-
운영체제(OS) 기본지식 - 4. DMA(Direct Memory Access) 와 PIO(Program Input/Output)Computer Basis/OS 2020. 10. 11. 15:09
# Device Controller 각 Device들의 작은 CPU # Local Buffer 각 Device들의 작은 Memory # DMA (Direct Memory Access) 특정 하드웨어 시스템이 CPU와 독립적으로 메인메모리에 접근할 수 있게 해주는 방식 디바이스들의 로컬버퍼에서 메모리로 데이터 이동이 완료되었다는 인터럽트만 발생시킨다. 그동안 CPU는 다른작업을 수행할 수 있어 효율성이 높아진다. DMA는 과거 IBM의 특허기술이었다. (현재는 특허권 소멸) # 버스 마스터링 시스템 (First-Party DMA System) 버스 마스터링 시스템에서, CPU와 주변장치는 각각 메모리 버스 통제권을 얻을 수 있다. 버스마스터가 될수 있는 주변장치는 필요에 따라 메모리 주소와 제어신호를 제공..
-
운영체제(OS) 기본지식 - 5. System Generation(SYSGEN) & System BootComputer Basis/OS 2020. 10. 11. 15:00
# SYSGEN (System Generation) OS를 시스템에 맞게 생성하고, 컴파일러와 관련된 라이브러리를 생성, I/O 장치들의 환경설정(configuration)을 불러온다. 불러온 정보들을 바탕으로 CPU time과 메모리 효율, I/O 장치들의 효율등을 따져가며 시스템을 생성한다. # SYSGEN 에 필요한 정보들 CPU 종류, 갯수, 기능 가용 Memory 용량 가용 Device 의 종류 & 스펙 & 인터럽트 번호 등 환경설정 그 외 OS에 필요한 정보들 (버퍼의 크기, CPU 스케줄링 알고리즘, 최대처리 프로세스 수, 라이브러리 등등) # SYSGEN 정보의 사용처 OS 소스코드의 변경 (데이터 선언, 초기화, 상수 값, 조건부 컴파일등에 필요) Table 작성, 라이브러리 모듈 선택 ..
-
운영체제(OS) 기본지식 - 3. 주소체계 32BIT 컴퓨터 & 64BIT 컴퓨터Computer Basis/OS 2020. 10. 9. 19:41
# 컴퓨터 하드웨어의 구성 # N-bit 컴퓨터의 정의 # N-bit 컴퓨터 해당 컴퓨터의 CPU(프로세서)의 주소 레지스터의 최대 처리값(최대 저장값)이 N-bit인 컴퓨터 #32-bit 컴퓨터 해당 컴퓨터의 CPU 주소 레지스터 처리값이 32bit #64-bit 컴퓨터 해당 컴퓨터의 CPU 주소 레지스터 처리값이 64bit # 디스크와 메모리의 구성 기본적으로, 디스크나 메모리의 공간은 비트단위로 쪼개어져있음 # 주소값의 단위 & 프로세스 주소 공간의 크기 주소값이 위치하는 메모리는 비트 단위로 쪼개져 있지만, 편의상 주소값의 단위는 byte, 주소공간 하나의 크기는 1 byte 로 사용한다 # 컴퓨터 작동 기본 방식 컴퓨터에서 연산을 할 수 있는 장치는 오직 CPU 뿐이다. 타 저장장치(메모리, 디..
-
운영체제(OS) - 6. 메모리 관리Computer Basis/OS 2020. 10. 8. 18:08
1. 주소바인딩 프로세스의 논리적 주소를 물리적 메모리 주소로 연결시켜주는 작업 # 주소 바인딩의 종류 1. 컴파일 타임 바인딩(Compile time binding) 컴파일 시점에 해당 프로그램의 물리적 메모리위치를 결정 및 고정 절대 주소로 프로그램이 적재된다는 뜻에서 절대코드(absolute cod)를 생성하는 바인딩 방식이라 칭함 물리적 메모리 위치 변경 요구시, 컴파일을 다시 해야하므로 현대 시분할 컴퓨팅에서 잘 사용하지 않는다 2. 로드 타임 바인딩(load time binding) 프로그램의 실행 시작시 물리적 메모리위치가 결정 로더(loader)가 물리적 메모리 주소를 부여 프로그램 종료까지 물리적 메모리 위치가 고정 컴파일러가 relocatable code를 생성한 경우에 가능한 방식 #..
-
운영체제(OS) - 5. CPU 스케줄링Computer Basis/OS 2020. 10. 6. 18:22
# 기계어 명령의 종류 1. CPU 내부 수행 명령 (수행속도 가장 빠름) (일반명령) (CPU burst) (사용자모드) - Add 명령 : CPU내의 레지스터에 있는 두 값을 더해 레지스터에 저장하는 명령 2. 메모리 접근 수반 명령 (수행속도 비교적 빠름) (일반명령) (CPU burst) (사용자모드) - Load 명령 : 메모리에 있는 데이터를 CPU로 읽어들이는 명령 - Store 명령 : CPU 계산 결과값을 메모리에 저장하는 명령 3. 입출력 동반 명령 (수행속도 느림) (특권명령) (I/O burst) (커널모드) # CPU Burst time Ready Queue 대기시간 + 프로그램이 직접 CPU를 가지고 명령을 수행한 시간 => 순수 CPU 사용시간 # CPU Burst I/O 작업..
-
운영체제(OS) - 4. 프로세스 관리Computer Basis/OS 2020. 10. 6. 14:54
1. 프로세스 정의 및 문맥 # 프로세스 디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가서 실행될때 프로세스라 칭한다. # Context of Process 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보 CPU 재획득시, 직전 수행시점의 정확한 상태를 재현하기 위해 필요한 정보 # 문맥의 구성 1. 하드웨어 문맥 - CPU 수행상태 (PC값, 각종 레지스터 값) 2. 프로세스 주소공간 - 코드, 데이터, 스택상태 3. 커널상의 문맥 - PCB와 커널스택 (커널의 프로세스 관리를 위한 자료구조) # 프로세스의 문맥교환 (context switch) 실행시킬 프로세스를 변경하기 위해, 수행중이던 프로세스의 문맥을 저장하고 새로운 프로세스의 문맥을 세팅하는 과정 ..
-
운영체제(OS) - 3. 프로그램 구조와 실행Computer Basis/OS 2020. 9. 26. 20:14
1. 프로그램 구조 프로그램이 CPU에서 명령을 수행하려면, 명령을 담은 프로그램의 주소영역이 메모리에 올라가 있어야 한다. 프로그램의 주소영역은 코드(code), 데이터(data), 스택(stack) 영역으로 구분된다 함수호출에 의한 복귀 주소는 각 프로그램의 주소공간 중 스택영역에 보관 인터럽트에 의한 복귀 주소는 프로세스 제어블록(PCB)에 저장 # 코드(Code)영역 그림에 text라고 표시된 영역 프로그램 함수들의 코드가 기계어로 변환되어 저장되는 부분 컴파일 타임에 확정되는 영역 Read-Only 로 지정되어, 변경할 수 없다. # 데이터(Data)영역 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장됨 초기화 된 데이터들이 저장되는 영..
-
운영체제(OS) - 2. 컴퓨터 시스템 동작원리Computer Basis/OS 2020. 9. 24. 16:11
1. 컴퓨터 시스템의 구조 및 용어 # 내부장치 # 외부장치 CPU 디스크 메모리 키보드 마우스 모니터 네트워크 장치 # 입력(Input) 내부장치로 데이터가 들어오는 것 # 출력(Output) 외부장치로 데이터가 나가는 것 # 로컬버퍼(Local Buffer) 컨트롤러가 각 장치마다 가지고 있는 작은 메모리에 임시로 저장해놓는 입출력 데이터 장치에서 로컬버퍼로 데이터를 읽어오는 일은 각 장치의 컨트롤러가 담당 2. 프로그램 및 입출력 동작원리 # 입출력 장치들의 동작원리 (디스크는 예시일뿐) 프로그램이 디스크에서 디스크 컨트롤러가 디스크 컨트롤러가 디스크의 로컬버퍼를 데이터 요청 => 디스크에서 데이터를 읽어 => CPU에게 인터럽트 발생 => 해당 프로그램의 메모리로 로컬버퍼에 저장 (CPU가 체크하..