52
votes
Accepted
Where did usage of OS signals go?
it seems like signals were the primary way to communicate between processes
I'd disagree with this. Signals are/were the primary way for a "supervisor" process to control a "supervised&...
33
votes
Where did usage of OS signals go?
Signals haven't gone anywhere. They do about as much now as they did in the 1970s. (A little more, but not much more.)
Signals were, and are, a crude way of letting a process know that something ...
26
votes
Why do modern operating systems *ever* have perceptible input (keyboard/mouse) lag?
As you may have noticed, there's a category of application that tries really hard to avoid input lag and only occasionally fails at doing so: games. Even then it's not uncommon for players to notice ...
25
votes
Why do modern operating systems *ever* have perceptible input (keyboard/mouse) lag?
I would like to answer this question from more of a high-level, marketing perspective than a more low-level, technical one.
All of the current mainstream Operating Systems are so-called general ...
20
votes
Why do modern operating systems *ever* have perceptible input (keyboard/mouse) lag?
Why can't (or why don't) operating systems absolutely prioritise user input (and repainting thereof) in threading and process scheduling?
Even if the operating system tells the application about the ...
16
votes
Why is it called a "trap" instruction?
It's what we call kernel or system "trap", which triggers a kernel mode switch to execute the system call.
As to why that word was used, I haven't found definitive proof yet, so my current ...
16
votes
Where did usage of OS signals go?
Signals were always a rather quirky. The mechanism is very simple, which is why it was created in the first place, but because the signal handler can interrupt the process in literally any point, what ...
12
votes
Would we need Docker if applications were better behaved?
A major benefit of virtual machines and containers is the way you can isolate an application from any other applications, and reason about it as being a separate entity with clear interfaces that you ...
11
votes
Why do modern operating systems *ever* have perceptible input (keyboard/mouse) lag?
In my experience, on most computers I have ever used, this is usually caused by inappropriate swapping to disk. Every other cause (such as operating system locks) is significantly less common.
When ...
9
votes
Accepted
Relationship between the C standard libraries and Java standard libraries
Which is the relationship between the standard libraries of C language and the standard libraries of other software platforms, e.g. Java, .NET, Python?
There is no relationship.
Some library ...
9
votes
How is a software able to read a network file faster than it appears to be possible?
A network of 100 Mbps (mega bits per seconds) conveys 12,5 MB per seconds, including payload and protocol overhead. A file of 165 MB needs at least 13,5 seconds (In fact, it would require slightly ...
9
votes
How does an OS limit a program capabilities, if it's working directly with the cpu?
Modern CPUs have privilege modes that are used by the operating system lock out certain instructions. For example in user mode the instructions that modify (raise) the privilege mode or access system ...
9
votes
Why is it called a "trap" instruction?
While we can all say that the concept of "trap on overflow", or "trap on divide by zero" makes intuitive sense – stop the program from proceeding — what I would do is look to the ...
8
votes
Would it be possible to abstract multi-threading ability for programs not originaly designed for such?
For programs written in an imperative/procedural style, this is next to impossible because the separate threads may access shared data, and correct semantics for larger-grained parallelism can't be ...
8
votes
Accepted
Are contiguous objects contiguous in virtual memory or physical?
In essence, only the kernel's memory management system knows about the distinction between physical memory pages and virtual memory pages. For all the rest of the system and in particular user-space ...
7
votes
Accepted
Building a program that truly deletes everything
You can very difficultly obtain a true irrecoverable deletion of data. This is not related to algorithms but to physical properties of storage media.
You can only hope to reduce the risk (or ...
6
votes
Accepted
What is the difference between writing in assembly vs converting high level language into assembly using compiler?
High level languages like C do not expose all functionality of the CPU's instruction set. Sometimes the compiler is smart enough to use those features without being told to, but sometimes hoping for ...
6
votes
What does "address space" means when talking about IO devices?
An Address Space is simply a range of allowable addresses.
An I/O address is a unique number assigned to a particular I/O device, used for addressing that device. I/O addresses can be memory-...
6
votes
What is so different about RTOS compared to normal programming?
By not treating all Interrupt Service Routines (ISR's) as the highest priority.
The kernel of an RTOS is preemptible where as a GPOS kernel is not preemptible. This is a major issue when it comes to ...
6
votes
Accepted
Trying to understand OS-Level Virtualization
aren't processes already fairly isolated via separate virtual address spaces?
A bit isolated, yes, in that one process cannot access the memory of another process. But it can do various other things ...
6
votes
How is async implemented natively?
Well, "async" is an umbrella term and different pieces of async, over different runtimes are implemented in different ways.
For network i/o typically such runtime would take advantage of ...
5
votes
Accepted
How exactly are drivers developed, distributed, & utilized?
Yes, OSes come prepackaged with drivers. Normally they are loadable, and don't get loaded unless the device in question is installed. In many cases, the driver may be not on the original media but ...
5
votes
Relationship between the C standard libraries and Java standard libraries
The C standard library is a set of functions, macros, etc.. defined in header files that are required to be provided by a C Language implementation. The kinds of functions found there do IO, ...
5
votes
What does "address space" means when talking about IO devices?
The basic idea is pretty simple: a chip can have one bus to connect to memory, and a second bus to connect to I/O devices--or it can share a single bus between the two.
In practice, even a CPU that ...
5
votes
Accepted
How did old OSs create or expand a segment in memory without issues?
The 8086 does not have a protected mode: every process has full access to everything, which is a nightmare for an OS designer.
The processor had a set of registers specially designed to handle the ...
5
votes
Accepted
What are the risks of relying on the O.S layer (commands and shells) as programming platform?
Since you used both kind of tooling, I would expect you already to know most of the advantages and disadvantages of those command line tools: the main advantage is you can solve a lot of problems with ...
5
votes
Multiprocessing vs multithreading
The question is somewhat disconnected from reality but it highlights some interesting engineering topics.
First things first: define the requirements
“Better” must be better defined: is it better ...
5
votes
Why is it called a "trap" instruction?
For me the term "trap" always invoked the notion of suddenly seizing control of something unexpectedly and against its will.
If you think of the "something" as "normal program ...
5
votes
Accepted
What's contained in 'kernel mode' in virtual address space of a process?
And when a system call happens that kernel process gets loaded and a handler gets executed.
This would be extremely slow as a process context switch would be required to make a kernel call and ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
operating-systems × 232memory × 20
multithreading × 19
linux × 19
c × 16
windows × 15
kernel × 15
architecture × 14
design × 11
c++ × 11
concurrency × 11
programming-languages × 9
real-time × 9
cpu × 9
process × 9
file-systems × 8
compiler × 7
synchronization × 6
hardware × 6
arm × 6
security × 5
embedded-systems × 5
assembly × 5
scheduling × 5
linux-kernel × 5