The objectives of these slides are:
- To describe the benefits of a virtual memory system
- To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames
- To discuss the principle of the working-set model
Virtual Memory
• Copy-on-Write
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating-System Examples
Background
Page Table When Some PagesAre Not in Main Memory
Steps in Handling a Page Fault
A demand-paging system is similar to a paging system, discussed earlier, with a little difference that it uses - swapping.
Processes reside on secondary memory (which is usually a disk).
When we want to execute a process, we swap it into memory.
Rather than swapping the entire process into memory, however, we use a lazy swapper, which swaps a page into memory only when that page is needed.
Since we are now viewing a process as a sequence of pages, rather than one large contiguous address space, the use of the term swap will not technically correct.
A swapper manipulates entire processes, whereas a pager is concerned with the individual pages of a process.
We shall thus use the term pager, rather than swapper, in connection with demand paging.
The objectives of these slides are:
- To describe the benefits of a virtual memory system
- To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames
- To discuss the principle of the working-set model
In a computer operating system that uses paging for virtual memory management, page replacement algorithms decide which memory pages to page out, sometimes called swap out, or write to disk, when a page of memory needs to be allocated
Virtual Memory
• Copy-on-Write
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating-System Examples
Background
Page Table When Some PagesAre Not in Main Memory
Steps in Handling a Page Fault
A demand-paging system is similar to a paging system, discussed earlier, with a little difference that it uses - swapping.
Processes reside on secondary memory (which is usually a disk).
When we want to execute a process, we swap it into memory.
Rather than swapping the entire process into memory, however, we use a lazy swapper, which swaps a page into memory only when that page is needed.
Since we are now viewing a process as a sequence of pages, rather than one large contiguous address space, the use of the term swap will not technically correct.
A swapper manipulates entire processes, whereas a pager is concerned with the individual pages of a process.
We shall thus use the term pager, rather than swapper, in connection with demand paging.
The objectives of these slides are:
- To describe the benefits of a virtual memory system
- To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames
- To discuss the principle of the working-set model
In a computer operating system that uses paging for virtual memory management, page replacement algorithms decide which memory pages to page out, sometimes called swap out, or write to disk, when a page of memory needs to be allocated
CPU scheduling is the basis of multiprogrammed operating systems. By switching the CPU among processes, the operating system can make the computer more productive
- To introduce CPU scheduling, which is the basis for multiprogrammed operating systems
- To describe various CPU-scheduling algorithms
- To discuss evaluation criteria for selecting a CPU-scheduling algorithm for a particular system
- To examine the scheduling algorithms of several operating systems
CPU scheduling is the basis of multi-programmed operating systems. By switching the CPU among processes, the operating system can make the computer more productive
- To introduce CPU scheduling, which is the basis for multi-programmed operating systems
- To describe various CPU-scheduling algorithms
- To discuss evaluation criteria for selecting a CPU-scheduling algorithm for a particular system
- To examine the scheduling algorithms of several operating systems
CPU scheduling is the basis of multi-programmed operating systems. By switching the CPU among processes, the operating system can make the computer more productive
- To introduce CPU scheduling, which is the basis for multi-programmed operating systems
- To describe various CPU-scheduling algorithms
- To discuss evaluation criteria for selecting a CPU-scheduling algorithm for a particular system
- To examine the scheduling algorithms of several operating systems
The objectives of Multithreaded Programming in Operating Systems are:
- To introduce the notion of a thread—a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
- To discuss the APIs for the Pthreads, Windows, and Java thread libraries
- To explore several strategies that provide implicit threading.
- To examine issues related to multithreaded programming.
- To cover operating system support for threads in Windows and Linux.
The objectives of Multithreaded Programming in Operating Systems are:
- To introduce the notion of a thread—a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
- To discuss the APIs for the Pthreads, Windows, and Java thread libraries
- To explore several strategies that provide implicit threading.
- To examine issues related to multithreaded programming.
- To cover operating system support for threads in Windows and Linux.
The objectives of Multithreaded programming in Operating systems are:
- To introduce the notion of a thread—a fundamental unit of CPU utilization that forms the basis of multithreaded computer systems.
- To discuss the APIs for the Pthreads, Windows, and Java thread libraries
- To explore several strategies that provide implicit threading.
- To examine issues related to multithreaded programming.
- To cover operating system support for threads in Windows and Linux.
The objectives of Deadlocks in Operating Systems are:
- To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks
- To present a number of different methods for preventing or avoiding deadlocks in a computer system
The objectives of Deadlocks in Operating Systems are:
- To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks
- To present a number of different methods for preventing or avoiding deadlocks in a computer system
The objectives of Deadlocks in Operating Systems are:
- To develop a description of deadlocks, which prevent sets of concurrent processes from completing their tasks
- To present a number of different methods for preventing or avoiding deadlocks in a computer system
The objectives of Memory Management strategies in Operating Systems are:
- To provide a detailed description of various ways of organizing memory hardware
- To discuss various memory-management techniques, including paging and segmentation
- To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging
The objectives of these slides are:
- To provide a detailed description of various ways of organizing memory hardware
- To discuss various memory-management techniques, including paging and segmentation
- To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging
The Objectives of these slides are:
- To provide a detailed description of various ways of organizing memory hardware
- To discuss various memory-management techniques, including paging and segmentation
- To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging
The objectives of these slides are:
- To provide a detailed description of various ways of organizing memory hardware
- To discuss various memory-management techniques, including paging and segmentation
- To provide a detailed description of the Intel Pentium, which supports both pure segmentation and segmentation with paging
The objective of these slides are:
- To describe the services that
an operating system provides users, processes, and other systems
- To discuss the various ways of structuring an operating system
- To explain how operating systems are installed and customized and how they boot
The objectives of these slides are:
- To describe the services an operating system provides to users, processes, and other systems
- To discuss the various ways of structuring an operating system
- To explain how operating systems are installed and customized and how they boot
The objectives of these slides are:
- To introduce the notion of a process - a program in execution, which forms the basis of all computation
- To describe the various features of processes, including scheduling, creation and termination, and communication
- To explore interprocess communication using shared memory and message passing
The objectives of these slides are -
- To introduce the notion of a process - a program in execution, which forms the basis of all computation
- To describe the various features of processes, including scheduling, creation and termination, and communication
- To explore interprocess communication using shared memory and message passing
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
About
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Technical Specifications
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
Key Features
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface
• Compatible with MAFI CCR system
• Copatiable with IDM8000 CCR
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
Application
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Immunizing Image Classifiers Against Localized Adversary Attacksgerogepatton
This paper addresses the vulnerability of deep learning models, particularly convolutional neural networks
(CNN)s, to adversarial attacks and presents a proactive training technique designed to counter them. We
introduce a novel volumization algorithm, which transforms 2D images into 3D volumetric representations.
When combined with 3D convolution and deep curriculum learning optimization (CLO), itsignificantly improves
the immunity of models against localized universal attacks by up to 40%. We evaluate our proposed approach
using contemporary CNN architectures and the modified Canadian Institute for Advanced Research (CIFAR-10
and CIFAR-100) and ImageNet Large Scale Visual Recognition Challenge (ILSVRC12) datasets, showcasing
accuracy improvements over previous techniques. The results indicate that the combination of the volumetric
input and curriculum learning holds significant promise for mitigating adversarial attacks without necessitating
adversary training.
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
3. Copy-on-Write
• The fork() system call creates a child process that is a duplicate of its parent, i.e.,
duplicating the pages belonging to the parent
• When parent process creates child process, the address space of the parent process
is copied for the child process. It means the pages of the parent proess is duplicated.
• How the child process can overwrite the address space copied from parent process?
By invoking exec() system call.
• Immediately after the child process is created, if we call exec(), dont you think that
the copying of parent's address is unnecessary?
• Copy-on-Write -
• Allows the parent and child processes initially to share the same pages
• These shared pages are marked as copy-on-write pages, meaning that if either
process writes to a shared page, a copy of the shared page is created
3
5. Copy-on-Write
• Operating systems typically allocate these pages using a technique known as zero-fill-
on-demand
• Zero-fill-on-demand pages have been zeroed-out before being allocated, thus
erasing the previous contents
• vfork()
• Several versions of UNIX (including Solaris and Linux) provide a variation of the
fork() system call—vfork() (virtual memory fork)—that operates differently from
fork() with copy-on-write
• With vfork(), the parent process is suspended, and the child process uses the
address space of the parent
• vfork() does not use copy-on-write, if the child process changes any pages of the
parent’s address space, the altered pages will be visible to the parent once it
resumes
5
6. Copy-on-Write
• vfork()
• Therefore, vfork() must be used with caution to ensure that the child process
does not modify the address space of the parent
• vfork() is intended to be used when the child process calls exec() immediately
after creation
• Because no copying of pages takes place, vfork() is an extremely efficient method
of process creation and is sometimes used to implement UNIX command-line
shell interfaces
6
7. Page Replacement
• Page replacement - It is a technique in which OS decides which memory pages to
swap out, write to disk when a page of memory needs to be allocated
• Consider a situation in which a process with 5 pages(0,1,2,3,4). As of now, main
memory is free to accomodate only 3 pages. So, it accomodates page number 0,2,3
• So, pages 0,2,3 are in main memory and pages 1 and 4 are in harddisk
• Now, CPU needs to execute an instruction which is available in page1. So, it will
generate the logical address of this instruction. Then, page table is searched for
finding the frame number of this page. But,as this page doesn’t exist in main
memory, page fault occurs
• What to do in this situation?
• While a user process is executing, a page fault occurs
• The operating system determines where the desired page is residing on the disk
but then finds that there are no free frames on the free-frame list; all memory is
in use
7
8. Page Replacement
• The operating system has several options -
• It could terminate the user process
• Instead swap out a process, freeing all its frames and reducing the level of
multiprogramming
• Demand paging is the operating system’s attempt to improve the computer system’s
utilization and throughput
8
9. Basic Page Replacement
9
• Basic Page replacement takes the following approach -
• If no frame is free, we find one that is not currently being used and free it
• We can free a frame by writing its contents to swap space and changing the page
table (and all other tables) to indicate that the page is no longer in memory
• We can now use the freed frame to hold the page for which the process faulted
• We modify the page-fault service routine to include page replacement -
1. Find the location of the desired page on the disk
2. Find a free frame:
a. If there is a free frame, use it.
b. If there is no free frame, use a page-replacement algorithm to select a victim
frame
c. Write the victim frame to the disk; change the page and frame tables
accordingly
10. Basic Page Replacement
10
3. Read the desired page into
the newly freed frame;
change the page and frame
tables
4. Continue the user process
from where the page fault
occurred
• Notice that, if no frames are
free, two page transfers (one
out and one in) are required
• This situation effectively
doubles the page-fault service
time and increases the
effective access time
accordingly
11. Basic Page Replacement
11
• Reduce this overhead by using a modify bit / dirty bit
• Modify bit -
• When this scheme is used, each page or frame has a modify bit associated with it
in the hardware
• The modify bit for a page is set by the hardware whenever any byte in the page is
written into, indicating that the page has been modified
• When we select a page for replacement, we examine its modify bit
• If the bit is set, we know that the page has been modified since it was read in
from the disk, we must write the page to the disk
• If the modify bit is not set, however, the page has not been modified since it was
read into memory, we need not write the memory page to the disk as it is
already there
12. Basic Page Replacement
12
• Frame-allocation algorithm determines
• How many frames to give to each process
• Page-replacement algorithm
• Want lowest page-fault rate
• Evaluate algorithm by running it on a particular string of memory references
(reference string) and computing the number of page faults on that string
• Reference string - The string of memory references is called a reference string
• We can generate reference strings artificially (by using a random-number
generator, for example), or we can trace a given system and record the address of
each memory reference
• The latter choice produces a large number of data
• To reduce the number of data, we use two facts
13. Basic Page Replacement
13
• First, for a given page size, we need to consider only the page number, rather than
the entire address
• Second, if we have a reference to a page p, then any references to page p that
immediately follow will never cause a page fault
• Page p will be in memory after the first reference, so the immediately following
references will not fault
• For example, if we trace a particular process, we might record the following
address sequence -
• 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101,
0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105
• At 100 bytes per page, this sequence is reduced to the following reference
string: 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
14. Basic Page Replacement
14
• To determine the number of page
faults for a particular reference string
and page-replacement algorithm, we
also need to know the number of
page frame available
• As the number of frames available
increases, the number of page faults
decreases
• As the number of frames increases,
the number of page faults drops to
some minimal level
• Of course, adding physical memory
increases the number of frames
Figure illustrates that As the number of
frames increases, the number of page
faults drops to some minimal level
15. FIFO Page Replacement
15
• Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1
• 3 frames (3 pages can be in memory at a time per process)
• How to track ages of pages?
• Just use a FIFO queue
• FIFO performance is not always good
• The page replaced may be an initialization module that was used a long time ago and
is no longer needed or could contain a heavily used variable that was initialized early
and is in constant use
16. FIFO Page Replacement
16
• To illustrate the problems that are possible with a FIFO
page-replacement algorithm, consider the following
reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
• Figure shows the curve of page faults for this reference
string Vs the number of available frames. Notice that the
number of faults for four frames (ten) is greater than the
number of faults for three frames (nine)!
• This most unexpected result is known as Belady’s
anomaly: for some page-replacement algorithms, the
page-fault rate may increase as the number of
allocated frames increases for certain memory access
patterns
• We would expect that giving more memory to a
process would improve its performance. In some early
research, investigators noticed that this assumption was
not always true. Belady’s anomaly was discovered as a
result.