operating systems – Can a TLB hit cause a page fault?

$ Can $ $ a $ $ TLB $ $ hit $ $ lead $ $ to $ $ a $ $ page $ $ fault? $

My answer is yes, like saying even after a TLB hit if the page in memory is dirty and this will cause a page fault. Another case may be this, it is read-only and we want to write this page which will eventually cause a page fault.


Now, in this context, let me ask you a question that was asked during the GATE 2020 exam (one of the most prestigious exams in India for $ IIT & # 39; s $ for Masters and PhD). I know this is not a question and publication site, but to dispel my doubt, I have to, and the concept can be well understood through this question. The questions go like this ->

Consider a paging system that uses $ 1 – level $ page table residing in
main memory and a TLB for address translation. Each access to the main memory
take $ 100 ns $ and TLB research takes $ 20 ns $. Each page transfer
to / from disk takes $ 5,000 ns $. Suppose the TLB success rate is
95% $, the page defect rate is 10% $. Suppose that for $ 20% $ of the total
page fault, a dirty page must be rewritten on the disc before
the required page is read from the disc. The TLB update time is negligible. the
average memory access time in ns (round up to $ 1 $ decimal places) is
_______.

There is a lot of unrest around this question as the answer provided by the examining authority claims that it goes from $ 154.5ns $ to $ $ 155.5n, but many colleagues argue that it should be $ 725ns $ as there can still be page faults if there is a hit in the TLB. All of India is looking for your help.

Thank you.

How to improve faulty design systems

Before answering your question. I would like you to understand what a design system is.

enter description of image here
A design system is generally a storehouse of the aesthetics of any application. It consists of a library of visual models, a sketch library, a component library that contains codes, code usage directives, voice directives and tone, guidelines on how to use the guidelines in a design and animation language. Design systems are an effective means of design-driven development. And for that, it takes teamwork.

Here's why a design system fails and how to make it work:

  1. Rework:
    Each system after a certain time must be refurbished. The same goes with a design system. Over time, components can become useless due to technological developments. They may match the design, but this will not add any value to the design. And the only way to solve this problem is to review or rearrange these redundant components. The redesign should be a priority. The components chosen should not only adapt to the design, but should also be flexible to adapt to technological changes.

  2. Synchronization:
    We live in a world where technology evolves every two minutes. The same goes for design systems. Even before the components are put in place, things are likely to evolve in the front end. If the front technology does not match the rear components, the design is safe for the tank. And that's why timely synchronization of the front-end and back-end is important to ensure the success of a design system.

  3. Interview:
    Any product is likely to work if it is serviced in a timely manner. It is difficult to maintain the style guide after the product launches and the initial excitement dies out. The process becomes less fun and perhaps, that is why it is overlooked. But maintenance is an after-sales service for each application. Timely review of applications will help maintain the design system.

  4. Teamwork and coordination:
    Any product is a byproduct of teamwork. For a design system to work well, it needs as much external support as it does internal support. By external support system we mean support from the top and bottom of any organization. Teamwork and coordination become a priority in an organization where there are still old and crisp code bases. Thus, clear communication between teams and implementing changes after the approval of each team member is the key to a successful design system.

  5. A dedicated team:
    For a design system to work well, a dedicated team must be put in place to ensure its proper functioning. A design system must be checked; it needs an absolute investment and effort from a team that will take care of its functionality. If you neglect to continue updating the components of a design system, there is no doubt that it will fail. So the only solution to this is to pay attention to the design system with a hawk's eye. And this is only possible if a team takes care of this work with dedication.

  6. Shared responsibility:
    When we mentioned a dedicated team, we also meant shared responsibilities. With a team in place that only deals with a design system, one can delegate responsibilities. This team may include engineers or designers or be made up of both designers and engineers. Their responsibilities will be shared, such as assisting the loan by helping others settle into the design system, developing the design system, creating a coherent deployment plan and system upgrade – overall product management. The sharing of responsibilities will reduce the workload of one or two people and thus guarantee the proper functioning of the design system.

  7. Communication:
    What makes a system lose all charm is the lack of teamwork or coordination. And for teamwork to happen, the communication gap must be bridged with dedication. There is likely to be a difference of opinion between designers and engineers. The removal of these recurring differences is essential to the maintenance of a design system. It can be very difficult to reach a final decision, as there will most likely be some hits and misses, but the only goal should be the design system and how to make it work better. When the team arrives at a unanimous decision, one can be assured of the success of the design system.

  8. User test:
    If you want to know how well your design system works and what changes can be made to it, you need to set up user tests. Timely user feedback will guide you through making the necessary changes to the system. For example, if after user testing, you get comments that the design color scheme is not attractive, and if you don't implement it, you also don't make sure that users of the application are drawn to it and remain committed. above. User tests ensure that your design system is upgraded in a timely manner and leaves less chance of failure.

  9. Design:
    We have discussed here several facets that will make your design system strong, but one of the most important and important elements is the design itself. Your system architecture must be solid from the start. It must be flexible and futuristic. The design system in place must have room for personalization and further growth with changing market trends. Solid architecture can be achieved with namespace and semantic versioning. What is the namespace? It is a systematic organization of codes into different groups to avoid name collisions.
    What is semantic versioning? Semantic Versioning or SemVer is a universal way to version software development. It ensures that each transition is kept under control and better clarifies the technological upgrades that have taken place or are likely to occur. SemVer makes things clear and meaningful to the team.

  10. Reduce friction:
    Consumers are less likely to use a design system if it becomes obsolete or if there is continued friction in its functionality. To do this, you have to make sure that the system has less friction by lowering the cognitive load of development and making your conception of less resistance. If the design is too complex and complicated, users are less likely to return to the application. Because a user will only keep in mind the proper functioning of any application.
    A user is not an expert in the technical aspects of creating an application / design system. Therefore, it should be noted that the team is working on reducing friction in the system, which will ensure that users return to the application.

To sum up, a product is constantly upgrading and, in such cases, the establishment of a design system is beneficial for the product.

a. You have to start with the basics and first tackle the design. Basing the design system on solid architecture should be the top priority for designers and engineers.

b. Designers and engineers must work hand in hand and the communication gap must be reduced by avoiding communication problems at every stage of the process.

vs. The design system, every element of it, must be approved by the levels of the organization.

re. Likewise, keep in mind the synchronization of the front-end and the back-end. The slightest technological development can collapse the entire design system like a house of cards.

e. And to make sure that your design system doesn't fail, you have to work with the user experience in mind.

F. Each system needs to be reworked and this must be kept in mind when you want a design system. A timely overhaul of the system will ensure that it is not obsolete.

g. Finally, the design system for proper functioning must have a dedicated team that will delegate responsibilities and monitor the design components, ensuring that they are updated from time to time.

file systems – Using autotools ./configure in a shared source tree

I am working on building a large and complex source tree based on automatic tools ./configure on a shared supercomputer (named, OpenModelica https://github.com/OpenModelica/OpenModelica/blob/master/README.md ). Because it is a large version, we would like to log in and use the same source tree while we are working on compilation issues, even if we have different user accounts (but owned by the group & # 39; chgrp & # 39; is a group that we are both members of).

When running ./configure we have various problems, for example ./configure tries and fails to change the ownership of the file & # 39; config.guess & # 39 ;. And there are various other files created with property settings that seem to prevent shared use of the source code tree.

I think there should be a simple "chmod" or "chown" property setting for this source tree that would overcome this problem, but I haven't been able to figure it out. Any suggestion?

How are the operating systems involved in the execution of the programs?

From my understanding, the operating system is the abstraction layer above the hardware. This means that an operating system that supports two different CPU architectures can execute the same code. But I still can't figure out the details / steps of executing a given program.

Suppose I have a program that takes 2 numbers from the user, adds them and displays the answer. There are few steps in which the program does its work (it may be missing something or wrong somewhere, feel free to correct):

1) Double-click the program file icon.

(a) How do the graphical interface and the mouse (and RAM) interact to identify
clicked?

2) Load the program into main memory using the address of the clicked icon.

(b) How is the operating system involved in finding this file from disk?

3) 2-digit entry (the CPU reads the keyboard input instructions).

(c) Is the example of 2 different keyboards (for example: one with the & # 39; fn & # 39; key
in laptops and a full size) be a good example to explain the need
device controllers and drivers?

4) Addition of the 2 numbers (arithmetic operations).

(d) Is the operating system responsible for providing the CPUs with the addresses of
operands and operators?

5) Display of the output on the monitor.

I understand that the question could be broad, but I am unable to collect all of these things just by reading books (like "Operating System Concepts by Galvin").

Plus, I like as much detail as possible as it makes things clearer.

operating systems – can you please guide me on learning the basics of computer science

I work as machine learning engineer, but I come from a non-IT background. There are a lot of topics like Operating systems,Data structures,design and analysis,computer architecture and many other topics.Although I don't need to understand all of this in depth as an ml engineer, it might not hurt to know the basics.What courses or books(though I am not big fan of books) or moocs I can take to cover the above things.

operating systems – Another possible way to implement a multi-level page table?

The advantage of a multilevel page table is that we can swap internal level page tables for secondary storage. If however we want quick access to all the address space, we have to keep all the page tables in memory. There is then no saving.

However, imagine that the innermost page table does not point to the final frame, but that each page table does a little to get the final address. In other words, we divide each virtual address into sections and map them instead.

That is to say. we have a virtual address 1011 which corresponds to 1110 using a 2-level page table. Then the external level page table maps 10 -> 11 and the second level page table with index 3 (from binary 11) maps 11 -> 10. Together we get the address 1110 .

I was learning multi-level page tables and they confused me a lot. This is how I initially imagined that they worked. Obviously, this limits how we can map virtual address space to physical address space, that is, pages with the same prefix will have physical locations close to each other. However, I don't see the problem with this approach.

Why is this approach not used if it can save memory? Or do I have an error in my thinking?

operating systems – bits of the work set in the approximation of the work set

I am looking at the pdf example of Cornell found here: https://www.cs.cornell.edu/courses/cs4410/2016su/slides/lecture13.pdf

Also read OS Concepts 10th Chapter 10 but it doesn't go into detail.

I understand this simplified diagram:

Simplified work package

The locations of the 1s correspond to the location in the working set where the page was referenced.

But then he goes on to this:

working game approximation

And now that no longer makes sense, for example page 1 for t1 is 10010 and there are 10 pages in the working set. Counting from 0, the 1s appear in positions 2 and 9. How does this translate into 10010? and for t3 and t5?

Do multi-primary replicated distributed systems guarantee sequential consistency?

I know that distributed primary backup replicated systems guarantee sequential consistency. My question is whether multi-primary systems do this too. I mean if they use consencus (i.e. the Paxos algorithm) to agree on an order for the requests received, I assume that sequential consistency is achieved, but if they just use conflictless replicated data types, would that achieve sequential consistency?

USA – Why US Transit Systems Rarely Accept Direct Credit / Debit Card Payments

In my experience in the United States, it is extremely rare to find public transportation systems (especially buses) that accept credit card payments on board. For example, you can't just get on a bus with a credit card and pay for your ticket. Instead (unless you are paying in cash), you usually need to charge some sort of payment card or app with cash, or pay for your ticket at an ATM in a large station . Why don't mass transit vehicles generally accept credit / debit card payments on board?

Here are some possible ideas and rebuttals. Feel free to distinguish my rebuttals:

  • There would be no demand for this service. This seems unlikely since payments by credit / debit card would open up transit to many more people: occasional cyclists. At the moment, it is often quite complicated to get a public transport card (you have to find the right pharmacy or fill out an online form and wait for it to arrive by mail). In addition, many people no longer or rarely carry more money. This means that getting on the bus can be complicated! If I'm in a new place, I don't want to have to jump into circles to find a specific bank or pharmacy, so I usually take carpooling services, even if I prefer not to! It seems that opening credit / debit card payments would help solve this problem. Also, in the U.S., wealthy people tend not to take the bus, and I'm willing to bet that at least some of this is due to the fact that wealthy people don't want / don't want to transport money or dealing with a price card. Flexibility is freedom in public transportation, and being able to pay by card would mean more freedom, and therefore perhaps more ridership, and a virtuous cycle for transportation companies.
  • The merchant's fees are too expensive. Credit card companies charge merchants a fee for each transaction, and I understand that the rates are higher as a proportion of the fee for smaller transactions. This would indeed seem to have a disproportionately negative impact on the economic viability of the card payment offer on buses. That said, I don't buy that argument: first of all, the UK (and maybe others – please let me know) offers this service. I got out of Glasgow Airport and got on the bus directly, paid with Apple Pay and was on my way. SOOO easy! If it's viable for them, why wouldn't it be viable here? In addition, other small transactions (think of ATMs) accept card payments. Also, if this is really a merchant charge issue, wouldn't the credit card companies be anxious to work with the major transportation agencies to reach an agreement? It would be a LOT of transactions, even if they weren't making as much money on each.
  • Providing this service on a moving bus is a technical challenge. This is not possible – all major American airlines offer in-flight credit card payments! Setting up the system on the buses can't be more difficult than that …
  • Credit / debit card payments are too slow. While it is true that transactions with chip readers in the United States are again boringly slow, I doubt this is the reason because the tapes were faster, and we didn't have credit card readers on the buses when the tapes reigned supreme.

operating systems – About Microsoft providing Windows 10 updates

I'm really curious to know the answers to these questions. I hope you can help me.

1- How long will Surface Go receive software updates (functionality and security)?

2- Is there a difference between:
• software updates (functionality and security) delivered to Microsoft hardware (Surface line devices)
and
• software updates (functionality and security) delivered to computers of other manufacturers (such as LG, for example …)
???

3- Is Microsoft hardware supported with software updates (functionality and security) for a longer period of time than computers from other manufacturers?

Thank you.