59

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 ...


5

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

"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

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

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

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

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

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

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

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 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

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

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

Real-world software is not designed to run on a single computer, but on an ecosystem, meaning that it interfaces with other software components, based on standards that have all kinds of different governance structures behind them. Complex ecosystems like this evolve on their own terms, and solutions do not scale elegantly, but given enough time they may ...


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.


2

If your question is "can one and the same sequence of bits sometimes represent a machine instruction and sometimes represent data" then the answer is definitely yes. If your question is "can one and the same location in memory sometimes hold a machine instruction and sometimes hold data" then the answer is it depends on the machine architecture. The Harvard ...


1

The semaphore doesn't issue those. A semaphore is an object that can be used by processes to coordinate between themselves. Thus, a process will call semSignal or semWait on a shared semaphore. We can't describe the conditions under which it will do that in general, because it's up to each process how it wants to use semaphores. Semaphores are a ...


1

It would be good to have as much as we got RAM, because RAM is slow and registers are blazingly fast. Registers are expensive and RAM is cheap (per bit), so we got what we got -- some registers and cache to fight RAM latency. Some people may say, that it won't be good if all RAM was replaced by register memory, because to address these registers we would ...


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