Machine physical address, 495
Machine simulator, 72
MacOS, 1, 4, 14, 17
Macro, 75
Magic character, 717
Magic number, 265
Magnetic disk, 370–381
Mailbox, 146
Mailslot, Windows, 937
Mainframe, 8
Mainframe operating system, 36–37
Major device, 758
Major device number, 364
Major page fault, 203
Making single-threaded code multithreaded, 113–116
Malware, 607, 615, 647, 912, 1034–1035
Managing free memory, 188–192
Mandatory access control, 629
Manycore chip, 538–540
Map file system, 42
Mapped file, 232
Mapped page writer thread, Windows, 971
MapViewOfFile Win32 call, 1009
Maroocky Shire sewage spill, 616–617
Marshaling, parameter, 569
Marshalling, 815
Mass storage, 370–390
Master boot record, 35, 278–279, 375, 741
Master file table, Windows, 991, 994–998
Mauchley, William, 8
MBR (see Master Boot Record)
MDAG (see Microsoft Defender Application Guard)
MDLs (see Memory Descriptor Lists)
Measured boot, 913
Mechanism, 68
Mechanism vs. policy, 1057–1058
Meltdown attack, 676, 928
Mem system call, 749
Memory, 24–28
free, 188–192
Memory allocation, Linux, 752–753
Memory-allocation mechanism, 752–753
Memory barrier, 149
Memory compaction, 187
Memory compression, Windows, 973–976
Memory descriptor list, Windows, 986
Memory fence, 149
Memory hierarchy, 179
Memory management, 179–250
bitmap, 189
implementation, 232–240
implementation in Linux, 748–754
implementation in Windows, 962–973
linked list, 190–191
Linux, 743–757
overlays, 192
Windows, 955–979
Memory management algorithm
best fit, 191
first fit, 190
next fit, 190
quick fit, 191
worst fit, 191
Memory management system calls in Linux, 746–748
Memory management unit, 28, 193
Memory manager, 179
Memory mapped file, 232
Memory partition, Windows, 976
Memory pressure, Windows, 969
Memory protection key, 695
Memory tagging extension, 1026
Memory virtualization, 493–497
Memory-management system calls, Win32, 961–962
Memory-mapped file, 746
Memory-mapped I/O, 340–344
Memory-mapped input/output, 341
Mesh, 559
Message passing, 145–148
Message-passing
design issues, 145–146
interface, 148
Metadata, 267, file 267
Method, 410, 595
Metric units, 80–81
MFT (see Master File Table)
Mickey, 401
Microarchitecture, 21
Microcomputer, 15
Microkernel operating system, 66–68
Microkernel vs. hypervisor, 490–493
Microkernel-based client-server system, 1056
Microprogramming, 48
Microsoft, 16–18, 408
Microsoft Azure, 506
Microsoft defender application guard, 1016
Microsoft disk operating system, 16, 261–262, 871–873, 1045
Microvm, 1009
Middleware, 581–598
coordination-based, 595–598
document-based, 588–590
file-based, 590–594
object-based, 594–595
publish/subscribe, 598–598
Migration
live, 504
virtual machine, 503–504
Milan chip, 539
Minimal process, Windows, 943
Miniport, 910
MINIX 3, 15, 63–68, 342, 612, 709–712, 1047
Minor device, 59, 758
Minor device number, 364
Minor page fault, 203
Missing block, 313
Mkdir system call, 54, 773
Mmap system call, 747, 806, 890
MMU (see Memory Management Unit)
Modified bit, 198
Modified page writer thread, Windows, 969, 971
Module, Linux, 765
Molnar, Ingo, 739
Monitor, 138–145
Monitor/Mwait instruction, 549
Monoalphabetic substitution cipher, 633
Monolithic operating system, 63–64
Moore’s law, 537
Motif, 405
Mount system call, 54, 786, 787
Mounted device, 353
Mouse software, 401
MPI (see Message-Passing Interface)
MPK (see Memory Protection Key)
MS-DOS (see MicroSoft Disk Operating System)
MSIX package, 882
MTE (see Memory Tagging Extensions)
Multi-factor authentication, 879
Multicomputer, 557–579
grid, 559
message-passing, 565–568
Multicomputer communication software, 562–570
Multicomputer hardware, 558–562
Multicomputer interconnection, 558–561
cube, 559
diameter, 559
grid, 559
hypercube, 559
mesh, 559
torus, 559
Multicomputer load balancing, 576–579
Multicomputer network, 561–562
Multicomputer scheduling, 575–576
Multicore chip, 23–24, 537–538, 540–541
MULTICS (see MULTiplexed Inform. and Computing Service)
Multilevel page table, 204, 204–206
Multilevel security, 629–632
Multiple queue scheduling, 164–165
Multiplexed information and computing service, 13–14, 42, 50, 65, 243–247, 1046
Multiprocessor, 86, 530–557
bus-based, 530–531
crossbar, 532–533
leader-follower, 543
omega network, 533–535
switching network, 533–535
symmetric, 544
Multiprocessor hardware, 530–545
Multiprocessor operating system, 541–545
Multiprocessor scheduling, 550–557
Multiprocessor synchronization, 545–548
Multiprogramming, 12, 86, 95–97
Multiqueue, 563
Multiserver operating system, 612
Multistage switching network, 533
Multithreaded code, 113–116
Multithreading, 24, 102
Multitouch screen, 418
Munmap system call, 747
Murphy’s law, 120
Mutant, Windows, 905
Mutex, 134–138, 938
Mutex trylock system call, 741
Multiprocessor, snooping, 538
Mutual exclusion, 121, 127, 135–136
bounded buffer, 128–132
busy waiting, 121–127
disabling interrupts, 121–123
lock variables, 123
message passing, 145–148
monitor, 138–145
mutex, 134–138
Peterson’s solution, 124–125
producer-consumer, 128–132
readers and writers problem, 132–133
semaphore, 129–133
spin lock, 124
strict alternation, 123–124
TSL instruction, 125–127
Mwait instruction, 549
Mythical man month, 1078–1079