From 1b81f28bb377fb6e4a42f73a84658c2bb66f609e Mon Sep 17 00:00:00 2001 From: Shadow8t4 Date: Mon, 19 Jun 2017 21:37:54 -0500 Subject: [PATCH] Final Submission of MP2. --- MP1/MP1_Sources/dev_kernel_grub.img | Bin 1474560 -> 1474560 bytes MP2/MP2_Sources/bochsout.txt | 235 ---------------- MP2/MP2_Sources/dev_kernel_grub.img | Bin 1474560 -> 1474560 bytes MP2/design.odt | Bin 0 -> 20762 bytes MP2/design.pdf | Bin 0 -> 28138 bytes MP2/mp2.zip | Bin 0 -> 32610 bytes MP2/mp2/cont_frame_pool.C | 404 ++++++++++++++++++++++++++++ MP2/mp2/cont_frame_pool.H | 132 +++++++++ MP2/mp2/design.pdf | Bin 0 -> 28138 bytes 9 files changed, 536 insertions(+), 235 deletions(-) delete mode 100644 MP2/MP2_Sources/bochsout.txt create mode 100644 MP2/design.odt create mode 100644 MP2/design.pdf create mode 100644 MP2/mp2.zip create mode 100644 MP2/mp2/cont_frame_pool.C create mode 100755 MP2/mp2/cont_frame_pool.H create mode 100644 MP2/mp2/design.pdf diff --git a/MP1/MP1_Sources/dev_kernel_grub.img b/MP1/MP1_Sources/dev_kernel_grub.img index 3233f667b6c2bffa111506fb18d4fdabfb9a1f31..d3732a24888773682a7f7c36d3dcfdbc3930359d 100644 GIT binary patch delta 3538 zcmeHHU1%It6ux(}Nv4}gW;DBX?KY;x5~zX%e5p042p1%2anp8Q0>QUX1`4qnXoYkZ z$6j|B78bd3V@<$N^hvNUCLk(FBh8Ny7VJ}7NGvJbGJ_s8u?3ENO3Thwlc4^I+Ka zleVvz$kfEA2qF6?-S*Y<$J%uyUTk@MJ}J++#(6-VI~wP4dHyr;PrTPSe=q%aqw`3V z;8$t*xeidwq?r&G8+>=9`|H^4?Uq5P?Ppy>afwtU%!eECa!$I-{$zx3rlXN+OH$m*mf$5n+Xg*$x<56N+Y!5ERb!) zY5D9`+|vg(GoL>rdgBbstqK6MGJ`uB#7RIIzsK?6LD|Qy^S1#h?j>ujP)sehti_f+ z!e$XrEp96I$`OZbFOw>;B73r$wfgxRQ#ki>lzTWYF4fvZs@PjwZcRd%{KQ)1lNbua zFcQS4r*KdAH(;BUFk9g3^8Rp!uTSAa2R{TyVREZ;LT%7^<2;zc&$SPOqxZ@XKl&Ly zo+4XrCX#obzwJkN4 zv^k{xxBx4a7b_4h*GrbM@|XvjRw57clEjKh04yznK~aF0NGqEE9%x6cCBAA7i18Y6 zEp9Z90~+%+aW3}N(<${G3X0?r?9U?@zjG5F0((p|&DaqF|e-a0S@g;9p$Bxm*p_4FFhCzYYSx1Ag}!K5W$hX$hD&{4qz; zBqE9}u-PI}>u{V|CI%)1Jx#^=fXWAw2o;HuzRVM3dA~vEE!fo2cx3u5vV%II9%wV{ zS&*^}UiuvOW{xj9Yfi;p=yw)N#tv}fN>P!ntm%LvS>2ZqmV&Ul9~2GrPqf(=z~=!M znn+5Ve7cl#jiB^q=#T(JmEOY6Y3SIw%uZ4FHtKVTwCt5a_~~h!wVo&i%J}Y=_4V~X z?!!APTI!m<{f{-lNYcufLws$X_|8qgNJ3bQaFstZgL_&)IX^LjPw}#gFIr>erhcvF zrZ4Z;-`oN0&%dd!-~RqLxBX-L``_FF{NMloU;20Lrwmh;psaL)a5Q?Eg#%HJ>5uJ0S7r5ccQkTcq~YfS41Axqz4(h-A*fLIWS Rg@9NXh()$XOcP!45&$n4Pi_DJ diff --git a/MP2/MP2_Sources/bochsout.txt b/MP2/MP2_Sources/bochsout.txt deleted file mode 100644 index 3cc1677..0000000 --- a/MP2/MP2_Sources/bochsout.txt +++ /dev/null @@ -1,235 +0,0 @@ -00000000000i[ ] Bochs x86 Emulator 2.4.6 -00000000000i[ ] Build from CVS snapshot, on February 22, 2011 -00000000000i[ ] Compiled at Nov 11 2011, 09:31:18 -00000000000i[ ] System configuration -00000000000i[ ] processors: 1 (cores=1, HT threads=1) -00000000000i[ ] A20 line support: yes -00000000000i[ ] CPU configuration -00000000000i[ ] level: 6 -00000000000i[ ] SMP support: no -00000000000i[ ] APIC support: yes -00000000000i[ ] FPU support: yes -00000000000i[ ] MMX support: yes -00000000000i[ ] 3dnow! support: no -00000000000i[ ] SEP support: yes -00000000000i[ ] SSE support: sse2 -00000000000i[ ] XSAVE support: no -00000000000i[ ] AES support: no -00000000000i[ ] MOVBE support: no -00000000000i[ ] x86-64 support: yes -00000000000i[ ] 1G paging support: no -00000000000i[ ] VMX support: no -00000000000i[ ] Optimization configuration -00000000000i[ ] RepeatSpeedups support: yes -00000000000i[ ] Trace cache support: yes -00000000000i[ ] Fast function calls: yes -00000000000i[ ] Devices configuration -00000000000i[ ] ACPI support: yes -00000000000i[ ] NE2000 support: yes -00000000000i[ ] PCI support: yes, enabled=yes -00000000000i[ ] SB16 support: yes -00000000000i[ ] USB support: yes -00000000000i[ ] VGA extension support: vbe -00000000000i[MEM0 ] allocated memory at 0x7f048b2b5010. after alignment, vector=0x7f048b2b6000 -00000000000i[MEM0 ] 32.00MB -00000000000i[MEM0 ] mem block size = 0x00100000, blocks=32 -00000000000i[MEM0 ] rom at 0xfffe0000/131072 ('BIOS-bochs-latest') -00000000000i[MEM0 ] rom at 0xc0000/38400 ('VGABIOS-lgpl-latest') -00000000000i[VTIME] using 'realtime pit' synchronization method -00000000000i[ ] lt_dlhandle is 0x2bea560 -00000000000i[PLGIN] loaded plugin libbx_cmos.so -00000000000i[ ] lt_dlhandle is 0x2beaf80 -00000000000i[PLGIN] loaded plugin libbx_dma.so -00000000000i[ ] lt_dlhandle is 0x2beb9e0 -00000000000i[PLGIN] loaded plugin libbx_pic.so -00000000000i[ ] lt_dlhandle is 0x2bec220 -00000000000i[PLGIN] loaded plugin libbx_pit.so -00000000000i[ ] lt_dlhandle is 0x2becb90 -00000000000i[PLGIN] loaded plugin libbx_vga.so -00000000000i[ ] lt_dlhandle is 0x2bed2c0 -00000000000i[PLGIN] loaded plugin libbx_hdimage.so -00000000000i[ ] lt_dlhandle is 0x2bedb80 -00000000000i[PLGIN] loaded plugin libbx_floppy.so -00000000000i[ ] lt_dlhandle is 0x2bee770 -00000000000i[PLGIN] loaded plugin libbx_soundmod.so -00000000000i[ ] lt_dlhandle is 0x2befdc0 -00000000000i[PLGIN] loaded plugin libbx_pci.so -00000000000i[ ] lt_dlhandle is 0x2bf09f0 -00000000000i[PLGIN] loaded plugin libbx_pci2isa.so -00000000000i[ ] lt_dlhandle is 0x2bf12d0 -00000000000i[PLGIN] loaded plugin libbx_usb_common.so -00000000000i[ ] lt_dlhandle is 0x2bf1b30 -00000000000i[PLGIN] loaded plugin libbx_unmapped.so -00000000000i[ ] lt_dlhandle is 0x2bf23a0 -00000000000i[PLGIN] loaded plugin libbx_biosdev.so -00000000000i[ ] lt_dlhandle is 0x2bf2cd0 -00000000000i[PLGIN] loaded plugin libbx_speaker.so -00000000000i[ ] lt_dlhandle is 0x2bf3500 -00000000000i[PLGIN] loaded plugin libbx_extfpuirq.so -00000000000i[ ] lt_dlhandle is 0x2bf3d70 -00000000000i[PLGIN] loaded plugin libbx_gameport.so -00000000000i[ ] lt_dlhandle is 0x2bf46e0 -00000000000i[PLGIN] loaded plugin libbx_pci_ide.so -00000000000i[ ] lt_dlhandle is 0x2bf50b0 -00000000000i[PLGIN] loaded plugin libbx_acpi.so -00000000000i[ ] lt_dlhandle is 0x2bf59f0 -00000000000i[PLGIN] loaded plugin libbx_ioapic.so -00000000000i[ ] lt_dlhandle is 0x2bf63a0 -00000000000i[PLGIN] loaded plugin libbx_keyboard.so -00000000000i[ ] lt_dlhandle is 0x2bf6ba0 -00000000000i[PLGIN] loaded plugin libbx_harddrv.so -00000000000i[ ] lt_dlhandle is 0x2c08c70 -00000000000i[PLGIN] loaded plugin libbx_serial.so -00000000000i[ ] lt_dlhandle is 0x2c09ae0 -00000000000i[PLGIN] loaded plugin libbx_parallel.so -00000000000i[CMOS ] Using specified time for initial clock -00000000000i[CMOS ] Setting initial clock to: Fri Dec 31 17:00:00 1999 (time0=946681200) -00000000000i[DMA ] channel 4 used by cascade -00000000000i[DMA ] channel 2 used by Floppy Drive -00000000000i[FDD ] fd0: 'dev_kernel_grub.img' ro=0, h=2,t=80,spt=18 -00000000000i[PCI ] 440FX Host bridge present at device 0, function 0 -00000000000i[PCI ] PIIX3 PCI-to-ISA bridge present at device 1, function 0 -00000000000i[VGA ] interval=50000 -00000000000i[MEM0 ] Register memory access handlers: 0x00000000000a0000 - 0x00000000000bffff -00000000000i[XGUI ] test_alloc_colors: 16 colors available out of 16 colors tried -00000000000i[XGUI ] font 8 wide x 16 high, display depth = 24 -00000000000i[MEM0 ] Register memory access handlers: 0x00000000e0000000 - 0x00000000e0ffffff -00000000000i[VGA ] VBE Bochs Display Extension Enabled -00000000000i[PLGIN] init_dev of 'unmapped' plugin device by virtual method -00000000000i[PLGIN] init_dev of 'biosdev' plugin device by virtual method -00000000000i[PLGIN] init_dev of 'speaker' plugin device by virtual method -00000000000i[SPEAK] Failed to open /dev/console: Resource temporarily unavailable -00000000000i[SPEAK] Deactivating beep on console -00000000000i[PLGIN] init_dev of 'extfpuirq' plugin device by virtual method -00000000000i[PLGIN] init_dev of 'gameport' plugin device by virtual method -00000000000i[PLGIN] init_dev of 'pci_ide' plugin device by virtual method -00000000000i[PCI ] PIIX3 PCI IDE controller present at device 1, function 1 -00000000000i[PLGIN] init_dev of 'acpi' plugin device by virtual method -00000000000i[PCI ] ACPI Controller present at device 1, function 3 -00000000000i[PLGIN] init_dev of 'ioapic' plugin device by virtual method -00000000000i[IOAP ] initializing I/O APIC -00000000000i[MEM0 ] Register memory access handlers: 0x00000000fec00000 - 0x00000000fec00fff -00000000000i[PLGIN] init_dev of 'keyboard' plugin device by virtual method -00000000000i[KBD ] will paste characters every 1000 keyboard ticks -00000000000i[PLGIN] init_dev of 'harddrv' plugin device by virtual method -00000000000i[HD ] Using boot sequence floppy, none, none -00000000000i[HD ] Floppy boot signature check is enabled -00000000000i[PLGIN] init_dev of 'serial' plugin device by virtual method -00000000000i[SER ] com1 at 0x03f8 irq 4 -00000000000i[PLGIN] init_dev of 'parallel' plugin device by virtual method -00000000000i[PAR ] parallel port 1 at 0x0378 irq 7 -00000000000i[PLGIN] register state of 'unmapped' plugin device by virtual method -00000000000i[PLGIN] register state of 'biosdev' plugin device by virtual method -00000000000i[PLGIN] register state of 'speaker' plugin device by virtual method -00000000000i[PLGIN] register state of 'extfpuirq' plugin device by virtual method -00000000000i[PLGIN] register state of 'gameport' plugin device by virtual method -00000000000i[PLGIN] register state of 'pci_ide' plugin device by virtual method -00000000000i[PLGIN] register state of 'acpi' plugin device by virtual method -00000000000i[PLGIN] register state of 'ioapic' plugin device by virtual method -00000000000i[PLGIN] register state of 'keyboard' plugin device by virtual method -00000000000i[PLGIN] register state of 'harddrv' plugin device by virtual method -00000000000i[PLGIN] register state of 'serial' plugin device by virtual method -00000000000i[PLGIN] register state of 'parallel' plugin device by virtual method -00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called -00000000000i[CPU0 ] cpu hardware reset -00000000000i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000 -00000000000i[CPU0 ] CPUID[0x00000000]: 00000003 756e6547 6c65746e 49656e69 -00000000000i[CPU0 ] CPUID[0x00000001]: 00000f23 00000800 00002000 07cbfbff -00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x00000007]: 00000000 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000001 2a100800 -00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 -00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 -00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 -00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000 -00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000 -00000000000i[CPU0 ] CPUID[0x80000008]: 00003028 00000000 00000000 00000000 -00000000000i[PLGIN] reset of 'unmapped' plugin device by virtual method -00000000000i[PLGIN] reset of 'biosdev' plugin device by virtual method -00000000000i[PLGIN] reset of 'speaker' plugin device by virtual method -00000000000i[PLGIN] reset of 'extfpuirq' plugin device by virtual method -00000000000i[PLGIN] reset of 'gameport' plugin device by virtual method -00000000000i[PLGIN] reset of 'pci_ide' plugin device by virtual method -00000000000i[PLGIN] reset of 'acpi' plugin device by virtual method -00000000000i[PLGIN] reset of 'ioapic' plugin device by virtual method -00000000000i[PLGIN] reset of 'keyboard' plugin device by virtual method -00000000000i[PLGIN] reset of 'harddrv' plugin device by virtual method -00000000000i[PLGIN] reset of 'serial' plugin device by virtual method -00000000000i[PLGIN] reset of 'parallel' plugin device by virtual method -00000000000i[XGUI ] [x] Mouse off -00000003302i[BIOS ] $Revision: 1.209 $ $Date: 2008/06/02 20:08:10 $ -00000318057i[KBD ] reset-disable command received -00000438667i[VBIOS] VGABios $Id: vgabios.c,v 1.67 2008/01/27 09:44:12 vruppert Exp $ -00000438738i[VGA ] VBE known Display Interface b0c0 -00000438770i[VGA ] VBE known Display Interface b0c4 -00000441695i[VBIOS] VBE Bios $Id: vbe.c,v 1.60 2008/03/02 07:47:21 vruppert Exp $ -00000600000i[XGUI ] charmap update. Font Height is 16 -00000764696i[BIOS ] Starting rombios32 -00000765523i[BIOS ] ram_size=0x02000000 -00001019718i[BIOS ] Found 1 cpu(s) -00001036019i[BIOS ] bios_table_addr: 0x000fb778 end=0x000fcc00 -00001036086i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) -00001494893i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) -00001954380i[P2I ] PCI IRQ routing: PIRQA# set to 0x0b -00001954427i[P2I ] PCI IRQ routing: PIRQB# set to 0x09 -00001954474i[P2I ] PCI IRQ routing: PIRQC# set to 0x0b -00001954521i[P2I ] PCI IRQ routing: PIRQD# set to 0x09 -00001954537i[P2I ] write: ELCR2 = 0x0a -00001955474i[BIOS ] PIIX3 init: elcr=00 0a -00001975729i[BIOS ] PCI: bus=0 devfn=0x00: vendor_id=0x8086 device_id=0x1237 -00001978966i[BIOS ] PCI: bus=0 devfn=0x08: vendor_id=0x8086 device_id=0x7000 -00001981699i[BIOS ] PCI: bus=0 devfn=0x09: vendor_id=0x8086 device_id=0x7010 -00001982160i[PIDE ] new BM-DMA address: 0xc000 -00001983043i[BIOS ] region 4: 0x0000c000 -00001985619i[BIOS ] PCI: bus=0 devfn=0x0b: vendor_id=0x8086 device_id=0x7113 -00001986119i[ACPI ] new irq line = 11 -00001986156i[ACPI ] new PM base address: 0xb000 -00001986218i[ACPI ] new SM base address: 0xb100 -00001986686i[CPU0 ] Enter to System Management Mode -00001986696i[CPU0 ] RSM: Resuming from System Management Mode -00001986730i[PCI ] setting SMRAM control register to 0x4a -00001987012i[PCI ] setting SMRAM control register to 0x0a -00002010293i[BIOS ] MP table addr=0x000fb850 MPC table addr=0x000fb780 size=0xd0 -00002012496i[BIOS ] SMBIOS table addr=0x000fb860 -00002015540i[BIOS ] ACPI tables: RSDP addr=0x000fb970 ACPI DATA addr=0x01ff0000 size=0x9d8 -00002035073i[PCI ] 440FX PMC write to PAM register 59 (TLB Flush) -00002036085i[BIOS ] bios_table_cur_addr: 0x000fb994 -00500104718i[BIOS ] Booting from 0000:7c00 -00510000000i[XGUI ] charmap update. Font Height is 16 -00586200000i[XGUI ] charmap update. Font Height is 16 -00594600000i[XGUI ] charmap update. Font Height is 16 -00905192000p[XGUI ] >>PANIC<< POWER button turned off. -00905192000i[CPU0 ] CPU is in protected mode (active) -00905192000i[CPU0 ] CS.d_b = 32 bit -00905192000i[CPU0 ] SS.d_b = 32 bit -00905192000i[CPU0 ] EFER = 0x00000000 -00905192000i[CPU0 ] | RAX=0000000000000000 RBX=0000000000026260 -00905192000i[CPU0 ] | RCX=0000000000000f00 RDX=00000000000003d4 -00905192000i[CPU0 ] | RSP=0000000000104f90 RBP=0000000000104ff8 -00905192000i[CPU0 ] | RSI=00000000000263d3 RDI=00000000000263df -00905192000i[CPU0 ] | R8=0000000000000000 R9=0000000000000000 -00905192000i[CPU0 ] | R10=0000000000000000 R11=0000000000000000 -00905192000i[CPU0 ] | R12=0000000000000000 R13=0000000000000000 -00905192000i[CPU0 ] | R14=0000000000000000 R15=0000000000000000 -00905192000i[CPU0 ] | IOPL=0 id vip vif ac vm rf nt of df if tf sf ZF af PF cf -00905192000i[CPU0 ] | SEG selector base limit G D -00905192000i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D -00905192000i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1 -00905192000i[CPU0 ] | MSR_FS_BASE:0000000000000000 -00905192000i[CPU0 ] | MSR_GS_BASE:0000000000000000 -00905192000i[CPU0 ] | RIP=0000000000100431 (0000000000100431) -00905192000i[CPU0 ] | CR0=0x60000011 CR2=0x0000000000000000 -00905192000i[CPU0 ] | CR3=0x00000000 CR4=0x00000000 -00905192000i[CPU0 ] 0x0000000000100431>> jmp .-2 (0x00100431) : EBFE -00905192000i[CMOS ] Last time is 946681426 (Fri Dec 31 17:03:46 1999) -00905192000i[XGUI ] Exit -00905192000i[ ] restoring default signal behavior -00905192000i[CTRL ] quit_sim called with exit code 1 diff --git a/MP2/MP2_Sources/dev_kernel_grub.img b/MP2/MP2_Sources/dev_kernel_grub.img index 78aca567249a5fc7e88749844334b87479445856..f490066a9bc05989ceff33ca075381669df0918f 100755 GIT binary patch delta 6870 zcmeHKVQf>^6@J%o;1LYZg`@-;NQx3h#->80O$+T9LcMASLvz~t$6#ocDrIgas&v@V zx-ETPU*h@o#i^yPJSr7IhWfVs8tOKJm^9hRmITH$qoFC=K=X)^E`44xi(9hP#XINT z=Vu31+V(4d5=7#A&v(!L&bi;Y=Q4fv(-W+PZi>?1lY8FW7J6wwdPE9ch5{n}AKv9B9czBm!oZ)*8QgZkn$ z4-)|8E1L{jN(6`=EGg%Ld1u8<^YkETRyp874)7pgEST@nh0k2or+7S%`Byie5z^gV;YEXmb zmxoBJ+L_ib=@~7xQ%@&?cfdEv#AV~4eBqltJw5vL-S^T99(_7J-`Y8@XLKra4)35R za8y|VJRaW}S)m;Tel~cQB3{Jdr|&$((^%$d^zk$T*=L*X#QpZ)lNZ&+^jvlnDg5E` z<;y_fM*6)vJ(JFQNQR_7nJ*RKyEg#G>MAsU_1|ee|3C6{k6P~0X@D6|=^ zC&k!M>3xpDUw}53~%}Dk$ z=&-foK?R)59;gg`p(oKyDq}f8Z$YkoZ0IAN9dLj%EbA&W^i^DtamVF|pN+et(AUxW zt{AiZ3*|C!NeVJXP&R0bFCHw$X#p-q_|LWbbbx(9>~F4pjkJF2eaN!2>KV9QN2P#Y zN@rzlx(&2GD#J*dZ+_*w;uCAuX~Cd{7gEnb8tPAjnDq%`jSo;pu;APp>1=(Xk&NP` zmiImb8=m|(56?XL8ri%J=6VBxr`dHeIaQB)G$RY+2wb%eee;oFvhh(-ZoO+mSAjC? zSnX&)?p4IhdNEVO-`r)8Cb;&C&FW4ds*Ft=n+3gMl^&VlB)S9a^MVAI?4_xCFHpfB zK?*;y0}yB}v+a2C(_C~QCr4UGalueZ8AKKHfyT%g?_)4~>m*D8YE`637*ev9oj-#M zZoMi@Ya+htmUbV28zLLcfnl;iw!2}}`pN;bbC`5C(45i4&*g@Bc$n-~&wgAkvjg|| zaf{P-Dw7LSW}lts`GyKr-cCU~YcqmHpiMH+Ih5a|00l(=%kg@_Vx6v$u%k(tbqOaG zP5wv}Fd|j#!=QE-`a2ie`#9@!96MS*BG!SM-aYJDVXJH>bCH5ZOK}R_p3bMUUVR)s zl(ej}Dsu*7u3)$S0A2}uC8>XtwlVJwJqOAUB_WTY?_&*2iUKmFu~@k&TCR`^vn2Wmmdt(9PTkY4_N#o6WD2{VF6V z^kWRA9S#=`M#K#z+0M80!j<@K9@qs8?9Xms6GFip1W%$FCqn0g;6<|dU$#$75P+j!1jbeF$IFS^t>ldZTmdt%-L;{ z+EM!_kWAH zq}W0kY5|#vMD2hc1dT}6175IJ+fxDC(+q)E)y$&U;R1t*)Y|myn$Z7J#psvf(6{pV zSVCkiFivNAwAY+SpN|gAdcqj#EKkp@4Ut}hNM|dNUaM8hHB`$iSBr`w6h z-nQ492%v&cHoT!@H*|_=)DIUC+@{CAcl-^qp}vdC{hxzRP3EpQ$V01f2&#m8^b|}s zLM6ikQ4TP89bn=`^KhCn>?HAL7N+|DOIZ*eXO(J&ghjR()tTCCHK&xJC~CE8-b!IX z*m{+C)F*1DYgeVhpT--g4|2>xmFwIaI)ynu>gK%V1JN`9`BOyhxewXrBL7tsr&A?i z9LyWRIyf5ht>dIaktgX~6tgA>nU9#{!Nba+wwU=Mijfy;$a8n@L07j~bj;2)9`bRM zbgH)wV>jo=3rC%1Yk3)Tl)ofF7Z0yI5A-Fw{yhAaNal$17LnOa7~c=dfP&Cn3gkhJot|)y-Q}lz%E$$2C1MwMs$Zj_Y3p_pvB_{zT(z= zwW)sZ`6O%27oUmb@gI^FRBzHuo*-Mqr?V%>`<|ZU*y*>(yF~3tF6lpYX}3=<$G@}( zuzdbYT7Jv=U)uEdEbD)14`BKJU%vmBG6T!?zqIx5#qDDjiCLbQRTs0oF{?git%zAG rW0oAVR>iD_n6)})`C`_Zn6)-$DKX0*vmS_9>tfdWnAK=mO@I9l9g;iE delta 4178 zcmb_fe{2-T72df!!`htL!#;?irVw9QpmLjBLqbfEsya#)5~A9z zqSV<-)=qBOnvkUFQsIQSwER;kK}}^xsHJx{;tX}FbIzhPc9RpiD2wk}F7>rI#^w6G z+1>N;BatfA(s<_Hd-LYKZ@xD(8;RT(iQISM;nfQ!f0b%J*(^!uwZ~QuJhqyhX!X>3 z&2?R@{@(0u2A@^>0|uXt1~fj+G(O9;eF3I*1|;RhSXZp$9fQkfhr;^%S}tgCf0XAS z(D`h3k(e6J(Zm}kWz60#R;Olb$Yvm%YtzZdbG_&H<~#=yd{)9=R@S&If`Crxm%3th z5SQRb1d**p3?g8e)+Jj%6QYtW1$;)5T8F|l6m;MW|4@Q^M(*!2AMIv!%i?JdOR|`L zZtb9+)MD%P!5;phm(NB6qz|h4=-RkGtaC(z%sOYQl$QyLU&2ilx$$ZHW|=(&L2g;E z{EXC-u#`ILX-;;Ds|B=viqsESXA$Y_m1NvnLAbi0mdCf<*eRcUQym!@(TA^Gj8A&? zZ1zxuxitr8(VDeAif7vwgbTi9KzO%G3^pUmk)(blU< zKfkJ-4(`SV=2e4ef$~AB)H|Qv`qzFkuZjeSw^k4*U{2gyrg9suT-%!nnJlb?sgxMgrFp7!fJli&ryiYl}Kig|g)2>Yo@3m|DO zp03)=3(8T@TBQ@fuUV|j+4qXYVuI&|gU1b?cN|EYxxf7ZWU-zi`;Av*bT5sMVhlS9 z|8$3Wu{K*#g zlK77pTg@}YqEpsu%)HKme*Nx{k4!gVEpyQUwqoH&2U5q5Ru9JZBAJR;z$ZO!EcZiag!9gM5KmY11igJE)OUnrca_5*6^rJP18n(c ziIOewNeSt}ko6a65*4&S9i-ankX@cyZjJfQ0amXPH5WpIEXNS4wPyjwkWrDjvS!Fc zb|~slp9Ej=w5$!UM7%DW?m*zmz_1%`VJ=*Dp%l^%8B%+(vS*V+DAFzW2QBbwE zB6B-N!U;iQ$D%wF>CDI-EBbs`xjUwGy^7ex50LX12`}|R0;9@~#kM>qYw2lQMF2xp z-QiDEkS+aXAAzK*W9ghkY{3%L&oP23+XDTHCz_3F0-AtYTFYV#7ek>FGTs} z1h?Q)%I+cuk{1Poi=)OH&MW;j8^f2Q@OhJ5A65Fpmq%wdn3oT-kg#YBZpIB}(n^QT z#m};46`5S5L^fhKwbPsID!J!7$bJjCZ1mxX`?1Jv#>wq`S#D#Xv@pX1X*j_%6k~#? z?QVj)EIVZIG>e^#;D=sHXgu2x=^Xd8t2ltu3_CC$pY}xgcvjJPhB+?I@bQR~R|e0H zReZcF)?QD>`rznHnMUc4-Ja}@bg#bf!G* zlwL|8nWC5F2(nAL5RNztjR?x5Y|5zMQn^BKCI!x%qc_|H?wh&fUN-o!c6!V1J>P8= z$GJGBaJ3e)OTg%|+wyaW)vot~5e^tT{p{SGNgJT^bD$6*b+yGecQ*)~OoYRuS2kMk zGy((tELq}UFlg7{HoyVqiuwv)aXCmAx_HROEf2!7-H|Z0c1XW~cfw6HoKndM7!<_T zPk~>{$|Trwl+e`Zj9{0jg8Q8azFro=*uU)v$d3au{Gl$VN_AN-7Z}4SVcZ~s^!2n5 zTR;)}5^(NH_tfY#uRYIhLnX>TG?%`>HmEcL4GS#0+NhRR(nX1z2PZWi&)%LOc1?Eg z!B1f?vbB8yoNRX@OFCqf?)_lrbt{RS#S;pEAt(PQ*?vTz7EDG7ou+{Zk6yTXuoa-OSTS) z=bxIBErz5U=yL#1hZke+4O(aY4KC>%B_NkCw(DsnSOSpmz)$PBsbcY}b1TwP?Wsc6@R1um1(i$FP?G diff --git a/MP2/design.odt b/MP2/design.odt new file mode 100644 index 0000000000000000000000000000000000000000..d5cf71140c0453e801d2b16223b19c0fcf633076 GIT binary patch literal 20762 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�Y=a3E*!DS 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 r*2; + + unsigned int c = 0; + while(c < n_info_frames) + { + bitmap[i] = bitmap[i] ^ mask; + bitmap[i] = bitmap[i] ^ (mask >> 1); + if(mask == 0x02) + { + i++; + mask = 0x80; + } + c++; + nFreeFrames--; + } + + } + + pools[nPools] = *this; + nPools += 1; + + Console::puts("Frame Pool initialized\n"); +} + +unsigned long ContFramePool::get_frames(unsigned int _n_frames) +{ + // Are there enough frames left to allocate? + assert(nFreeFrames > _n_frames); + + // Find a frame that is not being used and return its frame index. + // Mark that frame as being used in the bitmap. + // NOTE: Must be updated to find a sequence of contiguous frames + // that are not being used and return the index of the head. + unsigned int frame_no = base_frame_no; + + // i is being used as the frame_no / 4 + // j is frame_no % 4 + // together, they will give the actual frame_no. + // c is used as a counter to count a squence of free frames. + unsigned int i = 0; + unsigned int j = 0; + unsigned int c = 0; + + while (true) + { + unsigned char mask = 0x80 >> (j*2); + // check every 2 bits for a free frame in the bitmap + while((mask & bitmap[i]) == 0 || ((mask >> 1) & bitmap[i]) == 0) + { + if(mask != 0x02) + { + j++; + mask = mask >> 2; + } + else + { + i++; + j = 0; + mask = 0x80; + } + } + // if frame is found, start checking for sequence + unsigned int temp = i; + c++; + while(c < _n_frames) + { + if(mask != 0x02) + { + mask = mask >> 2; + } + else + { + temp++; + mask = 0x80; + } + if((mask & bitmap[temp]) != 0 && ((mask >> 1) & bitmap[temp]) != 0) + { + c++; + } + else + { + c = 0; + break; + } + } + if(c == _n_frames) + { + nFreeFrames -= _n_frames; + break; + } + } + + frame_no += i*4 + j; + + // Update bitmap + // First: clear most significant bit to mark head of sequence. + bitmap[i] = bitmap[i] ^ (0x80 >> (j*2)); + // Second: clear both bits for all remaining frames in the sequence. + c = 1; + unsigned char mask = 0x80 >> j*2; + unsigned int temp = i; + while(c < _n_frames) + { + if(mask != 0x02) + { + mask = mask >> 2; + } + else + { + temp++; + mask = 0x80; + } + + bitmap[temp] = bitmap[temp] ^ mask; + bitmap[temp] = bitmap[temp] ^ (mask >> 1); + c++; + } + + return (frame_no); +} + +void ContFramePool::mark_inaccessible(unsigned long _base_frame_no, + unsigned long _n_frames) +{ + // Mark all frames in the range as being used. + int i ; + for(i = _base_frame_no; i < _base_frame_no + _n_frames; i++){ + mark_inaccessible(i); + } + nFreeFrames -= _n_frames; +} + +void ContFramePool::mark_inaccessible(unsigned long _frame_no) +{ + // Let's first do a range check. + assert ((_frame_no >= base_frame_no) && (_frame_no < base_frame_no + nframes)); + + unsigned int bitmap_index = (_frame_no - base_frame_no) / 4; + unsigned char mask = 0x80 >> ((_frame_no - base_frame_no) % 4) * 2; + + // Is the frame being used already? + assert(((bitmap[bitmap_index] & mask) != 0) && (bitmap[bitmap_index] & (mask >> 1)) != 0); + + // Update bitmap + bitmap[bitmap_index] ^= mask; + bitmap[bitmap_index] ^= mask >> 1; + nFreeFrames--; +} + +void ContFramePool::release_frames(unsigned long _frame_no) +{ + unsigned int i = 0; + while(i < nPools) + { + if(_frame_no <= pools[i].base_frame_no || _frame_no > (pools[i].base_frame_no + pools[i].nframes)) + { + i++; + } + else + { + pools[i].release_frames_here(_frame_no); + return; + } + } +} + +void ContFramePool::release_frames_here(unsigned long _first_frame_no) +{ + unsigned char * bitmap = this->bitmap; + + unsigned int bitmap_index = (_first_frame_no - base_frame_no) / 4; + unsigned char mask = 0x80 >> ((_first_frame_no - base_frame_no) % 4) * 2; + + if(!((bitmap[bitmap_index] & mask) == 0 && (bitmap[bitmap_index] & (mask >> 1)) != 0)) + { + if((bitmap[bitmap_index] & mask) != 0 && (bitmap[bitmap_index] & (mask >> 1)) != 0) + { + Console::puts("Error, Frame being released is not being used\n"); + assert(false); + } + Console::puts("Error, Frame being released is not head of sequence\n"); + assert(false); + } + + bitmap[bitmap_index] ^= mask; + nFreeFrames++; + + if(mask != 0x02) + { + mask = mask >> 2; + } + else + { + mask = 0x80; + bitmap_index++; + } + + while(bitmap[bitmap_index] & mask == 0 && (bitmap[bitmap_index] & (mask >> 1)) == 0) + { + bitmap[bitmap_index] ^= mask; + bitmap[bitmap_index] ^= (mask >> 1); + if(mask != 0x02) + { + mask = mask >> 2; + } + else + { + mask = 0x80; + bitmap_index++; + } + nFreeFrames++; + } +} + +unsigned long ContFramePool::needed_info_frames(unsigned long _n_frames) +{ + return (_n_frames / (FRAME_SIZE * 4)) + (_n_frames % (FRAME_SIZE * 4) > 0 ? 1 : 0); +} diff --git a/MP2/mp2/cont_frame_pool.H b/MP2/mp2/cont_frame_pool.H new file mode 100755 index 0000000..13c7a07 --- /dev/null +++ b/MP2/mp2/cont_frame_pool.H @@ -0,0 +1,132 @@ +/* + File: cont_frame_pool.H + + Author: R. Bettati + Department of Computer Science + Texas A&M University + Date : 17/02/04 + + Description: Management of the CONTIGUOUS Free-Frame Pool. + + As opposed to a non-contiguous free-frame pool, here we can allocate + a sequence of CONTIGUOUS frames. + + */ + +#ifndef _CONT_FRAME_POOL_H_ // include file only once +#define _CONT_FRAME_POOL_H_ + +/*--------------------------------------------------------------------------*/ +/* DEFINES */ +/*--------------------------------------------------------------------------*/ + +/* -- (none) -- */ + +/*--------------------------------------------------------------------------*/ +/* INCLUDES */ +/*--------------------------------------------------------------------------*/ + +#include "machine.H" + +/*--------------------------------------------------------------------------*/ +/* DATA STRUCTURES */ +/*--------------------------------------------------------------------------*/ + +/* -- (none) -- */ + +/*--------------------------------------------------------------------------*/ +/* C o n t F r a m e P o o l */ +/*--------------------------------------------------------------------------*/ + +class ContFramePool { + +private: + /* -- DEFINE YOUR CONT FRAME POOL DATA STRUCTURE(s) HERE. */ + + unsigned char * bitmap; // Remember the bitmap here needs 2 bits per frame + unsigned int nFreeFrames; // + unsigned long base_frame_no; // Where does the frame pool start in phys mem? + unsigned long nframes; // Size of the frame pool + unsigned long info_frame_no; // Where do we store the management information? + unsigned long n_info_frames; // Number of frames needed to store management info + static ContFramePool* pools; // List of frame pools, managed by the class + static unsigned int nPools; // Number of pools being managed + + void mark_inaccessible(unsigned long _frame_no); // Should be a frame marked as + // a head, otherwise fails + void release_frames_here(unsigned long _frame_no); // non-static member function + +public: + + // The frame size is the same as the page size, duh... + static const unsigned int FRAME_SIZE = Machine::PAGE_SIZE; + + ContFramePool(unsigned long _base_frame_no, + unsigned long _n_frames, + unsigned long _info_frame_no, + unsigned long _n_info_frames); + /* + Initializes the data structures needed for the management of this + frame pool. + _base_frame_no: Number of first frame managed by this frame pool. + _n_frames: Size, in frames, of this frame pool. + EXAMPLE: If _base_frame_no is 16 and _n_frames is 4, this frame pool manages + physical frames numbered 16, 17, 18 and 19. + _info_frame_no: Number of the first frame that should be used to store the + management information for the frame pool. + NOTE: If _info_frame_no is 0, the frame pool is free to + choose any frames from the pool to store management information. + _n_info_frames: If _info_frame_no is 0, this argument specifies the + number of consecutive frames needed to store the management information + for the frame pool. + EXAMPLE: If _info_frame_no is 699 and _n_info_frames is 3, + then Frames 699, 700, and 701 are used to store the management information + for the frame pool. + NOTE: This function must be called before the paging system + is initialized. + */ + + unsigned long get_frames(unsigned int _n_frames); + /* + Allocates a number of contiguous frames from the frame pool. + _n_frames: Size of contiguous physical memory to allocate, + in number of frames. + If successful, returns the frame number of the first frame. + If fails, returns 0. + */ + + void mark_inaccessible(unsigned long _base_frame_no, + unsigned long _n_frames); + /* + Marks a contiguous area of physical memory, i.e., a contiguous + sequence of frames, as inaccessible. + _base_frame_no: Number of first frame to mark as inaccessible. + _n_frames: Number of contiguous frames to mark as inaccessible. + */ + + static void release_frames(unsigned long _frame_no); + /* + Releases a previously allocated contiguous sequence of frames + back to its frame pool. + The frame sequence is identified by the number of the first frame. + NOTE: This function is static because there may be more than one frame pool + defined in the system, and it is unclear which one this frame belongs to. + This function must first identify the correct frame pool and then call the frame + pool's release_frame function. + */ + + static unsigned long needed_info_frames(unsigned long _n_frames); + /* + Returns the number of frames needed to manage a frame pool of size _n_frames. + The number returned here depends on the implementation of the frame pool and + on the frame size. + EXAMPLE: For FRAME_SIZE = 4096 and a bitmap with a single bit per frame + (not appropriate for contiguous allocation) one would need one frame to manage a + frame pool with up to 8 * 4096 = 32k frames = 128MB of memory! + This function would therefore return the following value: + _n_frames / 32k + (_n_frames % 32k > 0 ? 1 : 0) (always round up!) + Other implementations need a different number of info frames. + The exact number is computed in this function.. + */ +}; +#endif diff --git a/MP2/mp2/design.pdf b/MP2/mp2/design.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5abe55b10bcff0a470e53072e37623b5fd46a7f6 GIT binary patch literal 28138 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