In an operating system, what is the difference between a system call and an interrupt?

Short Answer: They are different things. A system call is call by software running on the OS to services provided by the OS. An interrupt is usually external hardware component notifying the CPU/Microprocessor about an event that needs handling in software (usually a driver). I say usually external, because some interrupts can be raised by … Read more

How to program an Operating System? [closed]

The absolute “bible” on operating system design is and was Andrew Tanenbaum’s Operating Systems Design and Implementation – the “Dragon” book 🙂 There are plenty of other references, too, e.g. Developing Your Own 32-Bit Operating System. Microsoft Research also has/had a project on creating an operating system in managed code (C#) called Singularity – that … Read more

Developing an operating system for the x86 architecture [closed]

For my final year project in collage I developed a small x86 OS with a virtual memory manager, a virtual file system and fully preemptive multitasking. I made it open source and the code is heavily commented, check out its source forge page at: https://github.com/stephenfewer/NoNameOS From my experience I can recommend the following: You will … Read more

Can’t understand Belady’s anomaly

The reason that when using FIFO, increasing the number of pages can increase the fault rate in some access patterns, is because when you have more pages, recently requested pages can remain at the bottom of the FIFO queue longer. Consider the third time that “3” is requested in the wikipedia example here: http://en.wikipedia.org/wiki/Belady%27s_anomaly Page … Read more

Historical reason behind different line ending at different platforms

DOS inherited CR-LF line endings (what you’re calling \r\n, just making the ascii characters explicit) from CP/M. CP/M inherited it from the various DEC operating systems which influenced CP/M designer Gary Kildall. CR-LF was used so that the teletype machines would return the print head to the left margin (CR = carriage return), and then … Read more

job, task and process, what’s the difference

“Process” is well-defined; “job” and “task” are ambiguous. Fundamentally a job/task is what work is done, while a process is how it is done, usually anthropomorphised as who does it. A job is an overall unit of work, and is composed of tasks. In practice usage is very inconsistent, and often “task” == “process”, though … Read more