약간 수정 된 BCPL 버전으로 작성되었습니다
(http://rabbit.eng.miami.edu/class/een521/bcpl-2.pdf)
인텔 80486 에뮬레이터 용
- http://rabbit.eng.miami.edu/class/een521/hardware-1.pdf
- http://rabbit.eng.miami.edu/class/een521/hardware-2a.pdf
- http://rabbit.eng.miami.edu/class/een521/intel486vm.pdf
박사가 작성한 에뮬레이터. 스티븐 머렐
(출처 코드 : http://rabbit.eng.miami.edu/class/een521/een521.zip)
이 리포트 안에서 :
- start.b : 가상 메모리 (80846. 4GB 메모리의 경우 = 512 페이지 * 페이지 당 2048 단어. 단어 = 32 비트)
6 개의 별도 지역에 대한 페이지 테이블이있는 페이지 디렉토리
가상 주소 공간 (사용자 및 시스템 코드, 힙 및 스택) - OS.B : 힙과 스택을 늘리는 페이지 오류 처리기
사용자 프로그램을 읽고 실행하는 기능
EXIT () 시스템 호출 시스템 FP, SP 및 PC를 복원하고 CPU 플래그 설정 및 사용자 프로세스 페이지를 재활용
인터럽트 기반 키보드 입력 시스템
명령 줄 쉘
(프로세스 중) 런닝 가능한 프로세스의 대기열 - NewVec.B : NewVec 및 Freevec와 함께 할당 및 재활용 힙
- file_system.b : 기본 파일 시스템 (mkdir, cd, rmdir, fcreate, fdelete, fopen, fclose, fwrite, fread)
- SYS_LIB.B : 기본 시스템 사용자 프로세스는 API를 호출합니다
- 사용자 프로세스 XB, YB : 테스트 용
이제 디렉토리 항목은 각각 하나의 블록으로 제한됩니다 (128 Words = 512 바이트).
이는 디렉토리가 16 개의 하위 파일 및 디렉토리로 제한되어 있음을 의미합니다. 이 아이
디렉토리는 16 개의 항목 등으로 제한됩니다.
각 디렉토리에는 다음이 포함됩니다.
- 512 바이트
- 28 바이트의 최대 16 개의 구조, 각각 자식 파일 또는 디렉토리를 설명합니다.
- 디렉토리 이름의 6 바이트
- 부모 디렉토리의 디스크 위치에 대해 4 바이트
파일은 장소 홀더 역할 역할을하며 하나의 헤더 블록을
설명 정보의 28 단어 : 이름, 권한, 생성 된 시간 등
파일의 내용에 100 개의 포인터가 있습니다.
100 개의 포인터 * 512 바이트 당 512 바이트 = 최대 파일 크기 50KB
- 디렉토리는 하나의 디스크 읽기를 열어야합니다
- 파일 하나의 디스크를 가져 가서 헤더 블록을 엽니 다.
또한 하나의 디스크가 최대 100 블록의 내용에 액세스하기 위해 읽습니다.
목표는 기본 파일 시스템 (파일 및 디렉토리 지원)을 갖는 것이 었습니다.
기본 운영 체제를 테스트하고 문제를 해결하려면
최적화하기 전에. 테스트되는 기능은 다음과 같습니다
- 가상 메모리, 6 개의 개별 영역에 대한 페이지 테이블이있는 페이지 디렉토리
가상 주소 공간 (사용자 및 시스템 코드, 힙 및 스택) - 힙과 스택을 늘리는 페이지 오류 핸들러
- 사용자 프로그램을 읽고 실행하는 기능
- EXIT () 시스템 호출 시스템 FP, SP 및 PC를 복원합니다.
CPU 플래그를 설정하고 사용자 프로세스 페이지를 재활용하십시오 - 인터럽트 기반 키보드 입력 시스템
- NewVec 및 Freevec와 함께 힙을 할당 및 재활용
진행 중
- 교대로 실행되는 사용자 프로세스 대기열
- 프레드 및 Fwrite 테스트
다음
- B+ 트리는 최소 디스크로 큰 파일을 수용 할 수 있습니다.