Skip to content

JunseoHo/minivm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniVM

Summary : This project is about implementation of hardware and operating system.
The goal is to implement hardware working and resource management of operating system in Java

Hardware

CPU

Instruction set architecture

Instruction size is 4byte.
Following is field table.

Field Name Bit Description
Addressing mode 1 Indicates whether the operand is a constant or an address
Opcode 5 Indicates Opcode
Register 2 Indicates general purpose register (AX, BX, CX, DX)
Operand 0 12 Indicates first operand
Operand 1 12 Indicates second operand

And following is Opcode table.
Segment designation is done through Operand 0, with 0 being considered the data segment, 1 being the stack segment, and 2 being the heap segment.

Name Mnemonic Description
Halt HLT Create halt interrupt
Load LDA Load value into AX
Store STO Store AX into memory
Add ADD Add value into AX and store AX
Subtract SUB Subtract value from AX and store AX
Multiply MUL Multiply value with AX and store AX
Divide DIV Divide value with AX and store AX
Jump JMP Store value into PC
Jump zero JPZ If zero field is true, execute Jump
Jump negative JPN If negative field is true, execute Jump
Interrupt INT Invert interrupt field
Push PSH Push value into stack and increase SP
Pop POP decrease SP
Allocate ALC Allocate heap memory and store base into AX
Free FRE Free heap memory

Oprating System

File System

file_system.png

  • The left panel is a memory dump of the FAT.
  • The center panel is a memory dump of the data section.
  • The right panel is a panel where you can open, update, and close the file.

The Memory Dump panel automatically shows you where physical values in the disk have changed when they do.

Memory Manager

memory_manager.png

  • The status bar at the top is the percentage of memory currently in use.
  • The top panel is the I/O log for main memory.
  • The bottom panel is the alloc/free log for main memory.

Process Manager

procrss_manager.png

  • The left panel is the CPU's register values.
  • The center panel is the running process's PCB, allocated pages, and allocated heap memory.
  • The right panel is a list of processes loaded on main memory.

About

Project for System programming2 Myongji Univ. 2023-2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages