58

You are conflating a number of issues here. Why does my software have all these features to begin with? Because other computers' software has those features, and network effects punish any software developer who doesn't follow the herd. Let's take an example from your question: Why does my web browser need to do anything other than basic HTML and CSS? ...


27

That means, one year of computation time on a single GPU (or half a year on two GPUs, or a quarter of a year on four GPUs, etc.). If you are thinking of using this term in your own writing, I encourage you to also specify what type of GPU you are using. One-GPU year on a Tesla V100 GPU is a lot more computation than one-GPU year on a K520 GPU. The notion ...


13

Since the other answers go pretty well into why companies just buy general purpose computers, I wanted to give an answer about security. In a lot of ways, it's easier to secure a system you know is insecure, than to secure a system you are pretty sure is secure but don't know in what ways it might be insecure. Windows 10 may have security vulnerabilities, ...


5

"If I were running a company ... the employee would see only the "sections" that are relevant for them, coded by me." You are not prescient. You cannot predict the future requirements of all your employees with sufficient accuracy to know the minimum set of "section" that are relevant or suitable for any given employee. The work required to refine this ...


4

The proportion of reads to writes would be workload and system dependent. Before filtering by caching, reads will typically be more common, if for no other reason than code being read-only and data writes being dependent on at least an equal proportion of reads. Under paging, discarding a clean (stored) page reduces the number of storage accesses, so there ...


4

"32-bit" describes the size of many of the units of data that the processor can use. In this context, it refers to the size of memory addresses. A 32-bit address can address $2^{32}$ distinct objects; in a byte addressable system, that means it can address $2^{32}$ distinct bytes. We don't give addresses to individual bits in memory, but rather groups of ...


4

The details depend on the processor architecture, but the principle is the same everywhere. All page tables of a given type at a given level have the same size. When all memory blocks have the same size, there is no fragmentation: a memory block is allocated starts at an offset which is a multiple of the block size, so the size of any hole is a multiple of ...


4

I'd use a simple username/password system, with no password resets or two-factor auth Password resets are required somewhere because people forget passwords. 2FA is required sometimes because they leak, as it turns out that building software free of security bugs is incredibly difficult. and once logged in, the employee would see only the sections that ...


4

I would argue that the premise of the question makes a wrong assumption: There is an enormous amount of people that use computers set up to perform a single task. Behind the scenes, they're generic systems running a full OS and having all capability, but the machine has been specialized for some tasks. For example: Cashiers use machines which are commonly ...


4

Yes, you use microkernel operating systems. If you use a modern Intel CPU, it includes a copy of Minix which runs on a separate processor that is embedded in the processor that you think you have. Chances are also very good that at least a few of your peripherals use microkernel operating systems internally. Moreover, you may not use any of these, but a lot ...


3

The operating system arranges for periodic timer interrupts, which only it can handle, so it periodically regains control of the CPU without requiring the co-operating of any other process. Also, when a process tries to access the hardware, that is mediated by the operating system, which gives it another opportunity to decide which process to run next.


3

You need to make your question a bit more precise. First, regarding your request to avoid "unlimited" registers -- I assume you mean registers that can hold an arbitrary value (e.g., any natural number). If you a-priori bound your registers, then the possible states your machine can be in is finite. That is, you have a deterministic finite automaton (or ...


3

There are two possibilities: No operation is allowed to take longer than one clock cycle. If the designers of the CPU can't fit an operation into one clock cycle, then either the clock cycle must be made longer, or that operation must be split into two, or they designers work extra hard to make that operation faster. That's the more common way to do this. ...


3

TL;DR: Modern computers are general purpose tools. They have a huge diversity of capabilities which will never be used simultaneously. All of these capabilities integrate with each other which creates huge complexity. More specialised systems are not created because generally it is more expensive to make and sell a reduced feature system than an existing ...


2

Having different subtable sizes for different levels of a multilevel page table just means that a different number of bits from the virtual address will be used. The size of each level's subtable is independent of the sizes of subtables in other levels. (Yes, "outer level page tables need not have same page size as inner page table".) Each subtable would be ...


2

Round Robin is supposed to provide better response time to the OS. Every job has been given a fair share of the processing time (fixed quantum time). It avoids starvation. Since every job has a fixed quantum time, so the LONGER job doesn't hold the CPU too long for itself (unless quantum time given is too long). It is used in multitasking and multi-...


2

In textbooks, the solution given is 6+8+13+20+21= 68/5 = 13.6 This is because the textbooks (including Operating System Concepts 8e by Silberschatz,Gagne,Gelvin) define turnaround time as the time that elapses between the submission and the termination of the process, which is the sum of arrival time, waiting time, execution time and time spent in device ...


2

You are completely misunderstanding what dual channel memory means; it is an implementation detail that is supposed to make memory access faster but completely invisible during operation. Let's say you have (simplified) a computer with two RAM chips. The computer could have one connection to both chips, or two connections, one to each chip. The CPU issues ...


2

a) A process does not necessarily have to terminate, it only reaches the terminated state if it exits voluntarily. If a process has no exit statement (e.g. a server), it would never reach the terminated state unless killed by the OS. Other ways for a process to never reach termination include not being scheduled when ready because some other process with ...


2

The $32$ bit page frame address acts as a base address and will be typically stored in an index register. An individual machine code instruction (e.g. a branch instruction) will then contain a $12$ byte bit offset. The offset is added to the base address to create the complete $44$ byte bit address.


2

The paper in question, as pointed out in the comments, contains the following footnote: Reproducing these experiments requires approximately 6.85 GPU years (NVIDIA P100) Note the mention of the exact GPU type that this statement is referring to in parentheses. This is vital information. As with most execution time measurements for software, you really ...


2

Program synchronization is a very different beast compared to transaction synchronization. The objective of your Operating System is to have multiple applications working in sync to maximize the utilization of your CPU. A couple of reasons I can think of as to why OS' are not equipped to handle transaction synchronization are as follows. Your DBMS is a self ...


2

The minimum that you need is zero registers. And there have been actual computers with zero registers. The most popular Pascal compiler (UCSD-Pascal) generated "p-code" which used zero registers; it was usually interpreted, but there was actually a hardware implementation.


2

Why not? Many would dispute the weight of your criticisms. we have full-fledged PCs with expensive, bloated, and insecure Microsoft or Linux software Expensive? GNU/Linux is free of charge; Windows comes bundled with most PCs often contributing less than 10% to the price (sort of.) Web browsers are free. Some applications aren't free, but if you don't ...


2

the employee would see only the sections that are relevant for them, coded by me. This is a very dangerous mindset for any programmer. A company is comprised of lots of people with various evolving and changing roles. You often cannot standardize their jobs to a degree to decide what is relevant for them all the time. There are some jobs where we try to, e....


2

This is part of an answer. Others will probably be able to add other points. A chess platform has to do a limited number of things, while an OS has to be able to do everything that OSes do, which is unlimited. You need lots of utilities, lots of apps written, and to get those, lots of compilers and coders' tools, etc. It's a much harder thing to get off ...


2

I followed your link to the “Inferno” Wikipedia page. And there it says this OS is maintained by some group as “open source”. There are two problems: The group that maintains it doesn’t even have a Wikipedia link. It is a U.K. private company exempt from filing which means it doesn’t do any business. I own a company just like that myself. So the level of ...


2

There's cache misses when you access a page for the first time, then you get hits. Since the kernel initialises the page, it gets all the cache misses. Then it passes the page to the user code, which gets cache hits. The same misses would happen in user code if the kernel didn't initialise the page.


1

You are confusing paging and memory allocation. Paging is used to implement virtual memory: Your logical address space is divided into pages, and each page can be mapped to a physical address in RAM, or can be assigned to some location in your backing store. Because the computer has to keep track of how each page is used, we make the pages reasonably large ...


1

The short answer is yes, since what you're essentially doing with the timestamps is making all potentially conflicting processes sequential. Of course, in sequential systems there are no race conditions (a bit of a simplification, but nevertheless). In what way does timestamping processes differ from creating locks on resources, which is the current standard ...


Only top voted, non community-wiki answers of a minimum length are eligible