Welcome!

Marco Cesati

Subscribe to Marco Cesati: eMailAlertsEmail Alerts
Get Marco Cesati via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories by Marco Cesati

This article consists of three parts. Part One introduced the choices made by Linux to schedule processes in the abstract. In this part we discusses the data structures used to implement scheduling and the corresponding algorithm. The Linux scheduling algorithm works by dividing the CPU time into epochs. In a single epoch, every process has a specified time quantum whose duration is computed when the epoch begins. In general, different processes have different time quantum durations. The time quantum value is the maximum CPU time portion assigned to the process in that epoch. When a process has exhausted its time quantum, it is preempted and replaced by another runnable process. Of course, a process can be selected several times from the scheduler in the same epoch, as long as its quantum has not been exhausted--for instance, if it suspends itself to wait for I/O, it... (more)

Understanding the Linux Kernel (Part 1 of 3)

Like any time-sharing system, Linux achieves the magical effect of an apparent simultaneous execution of multiple processes by switching from one process to another in a very short time frame. This article deals with scheduling, which is concerned with when to switch and which process to choose. The article consists of three parts. Part One introduces the choices made by Linux to schedule processes in the abstract. Part Two discusses the data structures used to implement scheduling and the corresponding algorithm. Finally, Part Three describes the system calls that affect proces... (more)

Understanding the Linux Kernel

Several system calls have been introduced to allow processes to change their priorities and scheduling policies. As a general rule, users are always allowed to lower the priorities of their processes. However, if they want to modify the priorities of processes belonging to some other user or if they want to increase the priorities of their own processes, they must have superuser privileges. The nice( ) System Call The nice( )[7] system call allows processes to change their base priority. The integer value contained in the increment parameter is used to modify the priority field ... (more)