1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 22:05:06 +00:00
serenity/Kernel/FileSystem
Andreas Kling 50677bf806 Kernel: Refactor scheduler to use dynamic thread priorities
Threads now have numeric priorities with a base priority in the 1-99
range.

Whenever a runnable thread is *not* scheduled, its effective priority
is incremented by 1. This is tracked in Thread::m_extra_priority.
The effective priority of a thread is m_priority + m_extra_priority.

When a runnable thread *is* scheduled, its m_extra_priority is reset to
zero and the effective priority returns to base.

This means that lower-priority threads will always eventually get
scheduled to run, once its effective priority becomes high enough to
exceed the base priority of threads "above" it.

The previous values for ThreadPriority (Low, Normal and High) are now
replaced as follows:

    Low -> 10
    Normal -> 30
    High -> 50

In other words, it will take 20 ticks for a "Low" priority thread to
get to "Normal" effective priority, and another 20 to reach "High".

This is not perfect, and I've used some quite naive data structures,
but I think the mechanism will allow us to build various new and
interesting optimizations, and we can figure out better data structures
later on. :^)
2019-12-30 18:46:17 +01:00
..
Custody.cpp Kernel: Don't create a String every time we look up a Custody by name 2019-08-25 06:45:14 +02:00
Custody.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
DevPtsFS.cpp Kernel: Give PTY's *actually* unique major ID's 2019-12-09 21:03:39 +01:00
DevPtsFS.h DevPtsFS: Do not assume there is one of it 2019-08-17 12:07:55 +02:00
DiskBackedFileSystem.cpp Kernel: Implement O_DIRECT open() flag to bypass disk caches 2019-11-05 19:35:12 +01:00
DiskBackedFileSystem.h Kernel: Implement O_DIRECT open() flag to bypass disk caches 2019-11-05 19:35:12 +01:00
ext2_fs.h Add clang-format file 2019-05-28 17:31:20 +02:00
ext2_types.h Add clang-format file 2019-05-28 17:31:20 +02:00
Ext2FileSystem.cpp Ext2FileSystem: set_metadata_dirty(true) during write_directory(). 2019-11-21 13:04:38 +01:00
Ext2FileSystem.h Kernel+FileManager: Disallow watch_file() in unsupported file systems 2019-12-15 19:33:39 +01:00
FIFO.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
FIFO.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
File.cpp FileDescription: Disallow construction with a null File 2019-08-11 09:33:31 +02:00
File.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
FileDescription.cpp Kernel: Handle fstat() on sockets 2019-11-26 19:58:25 +01:00
FileDescription.h Kernel: Implement O_DIRECT open() flag to bypass disk caches 2019-11-05 19:35:12 +01:00
FileSystem.cpp AK: Use size_t for the length of strings 2019-12-09 17:51:21 +01:00
FileSystem.h Kernel+FileManager: Disallow watch_file() in unsupported file systems 2019-12-15 19:33:39 +01:00
Inode.cpp Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
Inode.h Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
InodeFile.cpp Kernel+SystemMonitor: Log amounts of I/O per thread 2019-12-01 17:40:27 +01:00
InodeFile.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
InodeIdentifier.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
InodeMetadata.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
InodeWatcher.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
InodeWatcher.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
ProcFS.cpp Kernel: Refactor scheduler to use dynamic thread priorities 2019-12-30 18:46:17 +01:00
ProcFS.h ProcFS: Do not assume there is one of it 2019-08-17 12:07:55 +02:00
SharedMemory.cpp Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
SharedMemory.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
TmpFS.cpp TmpFS: Notify any associated InodeVMObject on inode changes 2019-08-24 19:59:01 +02:00
TmpFS.h Kernel+FileManager: Disallow watch_file() in unsupported file systems 2019-12-15 19:33:39 +01:00
VirtualFileSystem.cpp Kernel: Implement recursion limit on path resolution 2019-12-24 23:14:14 +01:00
VirtualFileSystem.h Kernel: Implement recursion limit on path resolution 2019-12-24 23:14:14 +01:00