I am Joe L. I am a Computer Science Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Chicago, USA. I have been helping students with their homework for the past 9 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
I am Irene. I am a Computer Science Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Computer Science from, California Institute of Technology. I have been helping students with their homework for the past 8 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
I am Joseph G . I am a Programming Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. Programming, Schiller International University, USA. I have been helping students with their homework for the past 8 years. I solve assignments related to Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Programming Assignments.
I am Anne L. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, Auburn University, USA. I have been helping students with their homework for the past 8 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Tim D. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Waterloo, Canada. I have been helping students with their homework for the past 9 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Burrows N. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming from, University Of Chicago, USA. I have been helping students with their homework for the past 4 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Gill K. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming at Manchester University, UK. I have been helping students with their homework for the past 6 years. I solve assignments related to Operating System Assignment.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignment.
I am Joe L. I am a Programming Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Chicago, USA. I have been helping students with their homework for the past 10 years. I solve assignments related to Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Programming Assignments.
I am Irene. I am a Computer Science Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Computer Science from, California Institute of Technology. I have been helping students with their homework for the past 8 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
I am Joseph G . I am a Programming Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. Programming, Schiller International University, USA. I have been helping students with their homework for the past 8 years. I solve assignments related to Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Programming Assignments.
I am Anne L. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, Auburn University, USA. I have been helping students with their homework for the past 8 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Tim D. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Waterloo, Canada. I have been helping students with their homework for the past 9 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Burrows N. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming from, University Of Chicago, USA. I have been helping students with their homework for the past 4 years. I solve assignments related to Operating systems.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignments.
I am Gill K. I am an Operating System Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming at Manchester University, UK. I have been helping students with their homework for the past 6 years. I solve assignments related to Operating System Assignment.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with Operating System Assignment.
I am Joe L. I am a Programming Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Chicago, USA. I have been helping students with their homework for the past 10 years. I solve assignments related to Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Programming Assignments.
I am Bernard. I am a C Programming Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Computer Science from, University of Leeds, UK. I have been helping students with their homework for the past 12 years. I solve assignments related to C Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with C Programming assignments.
Heading for a Record: Chromium, the 5th CheckPVS-Studio
We checked Chromium more than once before, and those who follow our blog could reasonably ask, "Why another check? Weren't there enough of them?" Sure, Chromium's source code is particularly clean, which was shown by each of the previous checks, but new errors inevitably continue to appear. Repeated checks prove that the more often you use static analysis, the better. A good practice is to use the analyzer every day. An even better practice is to analyze the new code right after you finish writing it (automatic analysis of recently modified code).
computer notes - Inter process communicationecomputernotes
Processes execute to accomplish specified computations. An interesting and innovative
way to use a computer system is to spread a given computation over several processes.
The need for such communicating processes arises in parallel and distributed processing
contexts.
Kernel-Level Programming: Entering Ring NaughtDavid Evans
University of Virginia
cs4414: Operating Systems
http://rust-class.org
Leslie Lamport wins the Turing Award!
Hardware-Based Memory Isolation
Software-Based Memory Isolation
Kernel-Level Programming
Which came first, programming languages or operating systems?
Programming without other programs
Kernel development
IronKernel
For embedded notes, see:
http://rust-class.org/class-14-entering-ring-naught.html
maXbox Starter 42 Multiprocessing Programming Max Kleiner
If the system running your program has multiple processors, you can improve performance by dividing the work into
several threads and letting them run simultaneously on separate processors or cores.
We show the function and examples to work with it!
I am Bernard. I am a C Programming Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Computer Science from, University of Leeds, UK. I have been helping students with their homework for the past 12 years. I solve assignments related to C Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with C Programming assignments.
Heading for a Record: Chromium, the 5th CheckPVS-Studio
We checked Chromium more than once before, and those who follow our blog could reasonably ask, "Why another check? Weren't there enough of them?" Sure, Chromium's source code is particularly clean, which was shown by each of the previous checks, but new errors inevitably continue to appear. Repeated checks prove that the more often you use static analysis, the better. A good practice is to use the analyzer every day. An even better practice is to analyze the new code right after you finish writing it (automatic analysis of recently modified code).
computer notes - Inter process communicationecomputernotes
Processes execute to accomplish specified computations. An interesting and innovative
way to use a computer system is to spread a given computation over several processes.
The need for such communicating processes arises in parallel and distributed processing
contexts.
Kernel-Level Programming: Entering Ring NaughtDavid Evans
University of Virginia
cs4414: Operating Systems
http://rust-class.org
Leslie Lamport wins the Turing Award!
Hardware-Based Memory Isolation
Software-Based Memory Isolation
Kernel-Level Programming
Which came first, programming languages or operating systems?
Programming without other programs
Kernel development
IronKernel
For embedded notes, see:
http://rust-class.org/class-14-entering-ring-naught.html
maXbox Starter 42 Multiprocessing Programming Max Kleiner
If the system running your program has multiple processors, you can improve performance by dividing the work into
several threads and letting them run simultaneously on separate processors or cores.
We show the function and examples to work with it!
Parallel programs to multi-processor computers!PVS-Studio
For instance, when a man cannot manage everything he creates a tally for himself, brainless, irresponsible, able only to solder pins, or carry heavy loads, or write from dictation but doing this very well.
Arkadiy and Boris Strugatskie
The article is an introduction into parallel programs for beginners. It was published in "PC World" magazine (http://www.viva64.com/go.php?url=429).
Dear students get fully solved assignments
Send your semester & Specialization name to our mail id :
help.mbaassignments@gmail.com
or
call us at : 08263069601
Corosync and Pacemaker
A computer cluster consists of a set of loosely connected or tightly connected computers that work together so that in many respects they can be viewed as a single system.
The components of a cluster are usually connected to each other through fast local area networks ("LAN"), with each node (computer used as a server) running its own instance of an operating system. Computer clusters emerged as a result of convergence of a number of computing trends including the availability of low cost microprocessors, high speed networks, and software for high performance distributed computing.
Clusters are usually deployed to improve performance and availability over that of a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.
Computer clusters have a wide range of applicability and deployment, ranging from small business clusters with a handful of nodes to some of the fastest supercomputers in the world such as IBM's Sequoia
Dear students get fully solved assignments
Send your semester & Specialization name to our mail id :
“ help.mbaassignments@gmail.com ”
or
Call us at : 08263069601
Operating System ,UNIX & LINUX base System Calls
1) Process Creation
2) Executing a Command
3) Wait command
4) Sleep Command
5) Sleep Command using getpid
6) Signal Handling
With C-Programming & BASH Programming
1-Information sharing
2-Computation speedup
3-Modularity
4-Convenience
5-allows exchanged data and informations
Two IPC Models
1. Shared memory- is an OS provided abstraction which allows a memory region to be simultaneously accessed by multiple programs with an intent to provide communication among them. One process will create an area in RAM which other processes can accessed
2. Message passing - is a form of communication used in interprocess communication. Communication is made by the sending of messages to recipients. Each process should be able to name the other processes. The producer typically uses send() system call to send messages, and the consumer uses receive()system call to receive messages
Shared memory
Faster than message passing
After establishing shared memory, treated as routine memory accesses
Message passing
Useful for exchanging smaller amounts of data
Easy to implement, but more time-consuming task of kernel intervention
Bounded-Buffer Problem Producer Process
do {
...
produce an item in nextp
...
wait(empty);
wait(mutex);
...
add nextp to buffer
...
signal(mutex);
signal(full);
} while (true);
Bounded-Buffer Problem Consumer Process
do {
wait(full);
wait(mutex);
...
remove an item from buffer to nextc
...
signal(mutex);
signal(empty);
...
consume the item in nextc
...
} while (true);
client-server model, the client sends out requests to the server, and the server does some processing with the request(s) received, and returns a reply (or replies)to the client.
Since Socket can be described as end-points for communication. we could imagine the client and server hosts being connected by a pipe through which data-flow takes place.
1-sockets use a client-server while Server waits for incoming client requests by listening to a specified port.
2-After receiving a request, the server accepts a connection from the client socket to complete the connection
3-then Remote procedure call (RPC) abstracts procedure call mechanism for use between systems with network connections
4-and pipes acts as a conduit allowing two processes to communicate
A process is different than a program
- Program is static code and static data
- Process is Dynamic instance of code and data
-Program becomes process when executable file loaded into memory
No one-to-one mapping between programs and processes
-can have multiple processes of the same program
-one program can invoke multiple process
Execution of program started via GUI mouse clicks and command line entry of its name
The process state transition
As a process executes, The process is being created, then The process is waiting to be assigned to a processor therefore, Instructions are being executed then The process is waiting for some event to occur,thereafter The process has finished exec ...
Explore the world of C programming assignments with expert guidance and practical tips. Dive into a range of C assignment solutions designed for varying complexity levels. Get insights from industry experts passionate about sharing their C programming knowledge. Discover time-saving techniques to boost productivity and meet assignment deadlines. Access 24/7 customer support and budget-friendly pricing options.
Ready to excel in C programming assignments? Head over to https://www.programminghomeworkhelp.com/c-assignment/ to embark on a journey toward academic excellence. Don't let C assignments hold you back. Join us on the path to success today!
Welcome to Programming Homework Help
Python Question Assistance
Making Python Learning Easier
Introducing Python Question Assistance
Are you struggling with Python programming questions? Look no further! ProgrammingHomeworkHelp.com is here to provide comprehensive and reliable Python question assistance. Whether you're a beginner or an experienced programmer, we have the expertise to help you overcome any coding challenge.
Why Choose ProgrammingHomeworkHelp.com?
Expert Python Programmers: Our team consists of experienced Python programmers who are well-versed in the language and its various concepts. They possess the knowledge and skills to tackle any Python question effectively.
Customized Solutions: We understand that each Python question is unique, and we tailor our solutions accordingly. Our experts analyze the problem, devise a strategic approach, and provide you with personalized, step-by-step solutions.
Timely Delivery: We value your time and ensure prompt delivery of solutions. No matter how challenging the question is, our experts work diligently to meet your deadlines.
24/7 Availability: We are available round the clock to assist you with your Python questions. Whether it's day or night, our dedicated team is ready to provide guidance and support whenever you need it.
Our Python Question Assistance Services Include:
Code Debugging: If you're encountering errors or bugs in your Python code, our experts can help you identify and fix them. We'll guide you through the debugging process, explaining the errors and providing solutions.
Code Optimization: Want to improve the efficiency and performance of your Python code? Our programmers can review your code and suggest optimizations to enhance its speed and effectiveness.
Algorithm Design: If you're stuck on designing the right algorithm for a Python question, our experts can guide you through the process. We'll help you understand the problem requirements and devise an efficient algorithmic solution.
How to Get Started:
Visit our website, https://www.programminghomeworkhelp.com/
Submit your Python question along with any additional instructions or requirements.
Receive a quote for the assistance required.
Make a secure payment.
Sit back and relax while our experts work on your Python question.
Don't let Python questions become obstacles in your learning journey. Programming Homework Help is your go-to destination for reliable and comprehensive Python question assistance. Our team of experts is committed to helping you succeed in your programming endeavors. Visit our website today and experience hassle-free Python learning like never before!
I am Hawkins F. Currently associated with programminghomeworkhelp.com as an Algorithms Assignment expert. After completing my Ph.D. in Programming from, Princeton University, USA, I was in search of an opportunity that expands my area of knowledge hence I decided to help students with their assignments. I have written various programming homework till date to help students overcome numerous difficulties they face.
I am Britney P. I love exploring new topics. Academic writing seemed an interesting option for me. After working for many years with progamminghomeworkhelp.com, I have assisted many students with their Design and Analysis of Algorithms Assignments. I can proudly say, each student I have served is happy with the quality of the solution that I have provided. I have acquired my bachelor's from Sunway University, Malaysia.
My name is Cecily Kent. I have been associated with programminghomeworkhelp.com for the past 8 years and have been assisting the programming students with their Algorithm Homework.
I have a PhD. in Programming from, the University of Melbourne, Australia.
I am Irene. I am an Algorithm Homework Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, the California Institute of Technology. I have been helping students with their homework for the past 6 years. I solve homework related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with the Algorithm Homework.
I am Andrew O. I am an Algorithm Homework Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, Southampton, UK. I have been helping students with their homework for the past 11 years. I solve homework related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with the Algorithm Homework.
I am Joe L. I am an Algorithms Design Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, the University of Chicago, USA. I have been helping students with their assignments for the past 10 years. I solve assignments related to Algorithms Design.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with the Algorithm Design Assignment.
I am Anne L. I am an Algorithms Design Homework Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, Auburn University, USA. I have been helping students with their homework for the past 8 years. I solve homework related to Algorithms Design.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with the Algorithm Design Homework.
I am Andrew O. I am an Algorithm Assignment Expert at programminghomeworkhelp.com. I hold a master’s in Programming from, the University of Southampton, UK. I have been helping students with their assignments for the past 12 years. I solve assignment related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with the Algorithm assignment.
I am Frank G. I am an Algorithm Homework Expert at programminghomeworkhelp.com. I hold in Programming from, the University of Waterloo, Canada. I have been helping students with their homework for the past 12 years. I solve homework related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Algorithm homework.
I am Simon M. I am a C Homework Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, from Glasgow University, UK. I have been helping students with their homework for the past 10 years. I solve homework related to C.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with C Homework.
I am Andrew O. I am a C Homework Expert at programminghomeworkhelp.com. I hold a master’s in Programming from, the University of Southampton, UK. I have been helping students with their homework for the past 10 years. I solve homework related to C.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.
You can also call on +1 678 648 4277 for any assistance with C Homework.
I am Vincent S. I am an Algorithm Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Minnesota, USA. I have been helping students with their homework for the past 9 years. I solve assignments related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Algorithm assignments.
I am Elijah L. I am an Algorithm Assignment Expert at programminghomeworkhelp.com. I hold a Bachelor’s Degree in Programming, Leeds University, UK. I have been helping students with their homework for the past 6 years. I solve assignments related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Algorithm assignments.
I am Travis W. I am a Computer Science Assignment Expert at programminghomeworkhelp.com. I hold a Master's in Computer Science, Leeds University. I have been helping students with their homework for the past 9 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
I am Charles B. I am an Algorithm Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming, Texas University, USA. I have been helping students with their homework for the past 6 years. I solve assignments related to Algorithms.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Algorithm assignments.
I am Christopher Hemmingway. I am a Computer Science Assignment Expert at programminghomeworkhelp.com. I hold a Master's in Computer Science, Princeton University, Princeton. I have been helping students with their homework for the past 10 years. I solve assignments related to Computer Science.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with Computer Science assignments.
I am Blake H. I am a Software Construction Assignment Expert at programminghomeworkhelp.com. I hold a PhD. in Programming, Curtin University, Australia. I have been helping students with their homework for the past 10 years. I solve assignments related to Software Construction.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with Software Construction Assignments.
I am Bernard. I am a C Assignment Expert at programminghomeworkhelp.com. I hold a Ph.D. in Programming from, University of Leeds, UK. I have been helping students with their homework for the past 9 years. I solve assignments related to C Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com. You can also call on +1 678 648 4277 for any assistance with C Programming Assignments.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Model Attribute Check Company Auto PropertyCeline George
In Odoo, the multi-company feature allows you to manage multiple companies within a single Odoo database instance. Each company can have its own configurations while still sharing common resources such as products, customers, and suppliers.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Home assignment II on Spectroscopy 2024 Answers.pdf
Computer Science Assignment Help
1. For any help regarding Programming Homework Help
Visit : https://www.programminghomeworkhelp.com/ ,
Email - support@programminghomeworkhelp.com
or call us at - +1 678 648 4277 programminghomeworkhelp.com
2. I File System Consistency
Ben is writing software that stores data in an xsyncfs file system (see the paper Rethink the Sync by Nightin gale et al). He’s nervous about
crash recovery. To help himself test, he adds a new system call to his operating system called crash(), which powers off his computer
without doing anything else. He also writes a simple “crash” command which calls his system call. His general test strategy is to perform
some opera tions, call crash(), restart the computer and let the file system finish recovering, and then observe what files and data are on the
disk.
1. First, Ben types the following commands to his shell:
% echo hello > foo
% crash
After the restart, is Ben guaranteed to see a file foo with contents “hello”? Why or why not?
Answer: Yes. xsyncfs guarantees that any file system writes that causally precede user output will be stable on disk before the user sees the
output. echo’s write() to foo causally precedes the second “%” prompt in the above output: echo exit()s after it write()s, and the shell
wait()s for echo’s exit() before it displays the prompt. Thus xsyncfs will have written echo’s output to foo before it allows the second % to
be displayed.
programminghomeworkhelp.com
3. 2. Now Ben runs the following UNIX program which he believes is equivalent to the above commands:
pid = fork(); if(pid == 0){
fd = creat("foo", 0666); // create a file foo write(fd, "hellon",
6);
close(fd); exit(0);
}
wait(&status); // wait for pid to exit crash();
After the restart, is Ben guaranteed to see “hello” in foo? Why or why not?
Answer: No. There is no user-visible output, so xsyncfs does not guarantee to send file writes to the disk. Much of the point of xsyncfs
is to avoid immediately writing the disk in cases like this, to increase performance.
3. What would the answers be for the xv6 file system? Why?
Answer: If you used xv6, you’d see “hello” in foo after the restart. That’s because the xv6 file system is synchronous: all file system
operations (such as creat() and write()) wait for their modifications to be written to disk before they return.
programminghomeworkhelp.com
4. II Virtualization
The paper A Comparison of Software and Hardware Techniques for x86 Virtualization states that one of the goals of virtualization is
“Fidelity: Software on the VMM executes identically to its execution on hardware, barring timing effects.”
The paper also says, at the end of Section 3.2, that the software virtualization technique outlined in Section 3 does not translate guest user-
mode code. That is, when the guest operating system executes instructions that would cause a switch to CPL=3 on real hardware, the VMM
stops translating code and allows the original guest instructions to execute directly on the hardware.
4. Explain a way that a carefully constructed guest kernel and/or user-mode program could exploit direct execution of user-mode
code to discover whether it was executing on a virtual machine. You should assume the system outlined in Section 3, running on a
32-bit x86.
Answer: One possibility is for the guest kernel to transfer to user space with interrupts turned off (IF clear in EFLAGS). The VMM will
leave interrupts turned on in the real hardware, since it needs to see the real hardware interrupts; IF will only be clear in the shadow
EFLAGS. User-mode code can use pushf to examine the real hardware EFLAGS. If interrupts are enabled in this situation, the software is
running on a virtual machine; if interrupts are disabled, the software is running on a real machine.
III Fault Tolerance
Ben is impressed with the paper Fault Tolerance Under UNIX, by Borg et al. He builds a system that is identical – with one exception. In
order to get better performance, his hardware has two busses, and every machine has a connection to both busses. When a machine needs
to send a message, it selects one of the two busses at random, and sends the message on that bus.
5. Explain why this change will cause serious problems to the correctness of the system. Give a specific example of something that will
likely go wrong.
Answer: Suppose two different machines, M1 and M2, send messages to M3 at the same time, but use different busses. M3 might see the
messages in one order, and M3’s backup might see them in the other order. If M3 were to crash, its backup would restore its state
incorrectly, since it would replay those two messages in a different order than M3 saw them.
programminghomeworkhelp.com
5. IV Bugs as Deviant Behavior
Have a look at Figure 3 of the paper Bugs as Deviant Behavior by Engler et al. Suppose first function in Figure 3 looked like:
ssize_t proc_mpc_write(struct file *file,
const char *buff){ retval =
parse_qos(buff, incoming);
}
That is, suppose the first seven lines of the original function were deleted.
6. Would the checker described in Section 7.1 emit an error for this modified function? Why or why not?
Answer: No. The checker looks for pointers that the code both dereferences and treats as suspect (by passing to a “paranoid” function).
There are no such pointers in this function.
It’s possible that the checker’s comparison of functions that are assigned to the same function pointer would catch the error even in this
modified code, if some other abstractly related function passes the buff argument to a paranoid function.
V Livelock
Answer this question in the context of the paper Eliminating Receive Livelock in an Interrupt-driven Kernel by Mogul et al.
7. Figure 6-3 shows that performance with polling and no quota is quite poor under high input load, but polling with a quota performs
much better. Explain what happens without a quota that results in almost zero performance under high input load, and how a quota
helps solve this problem.
Answer: Without a quota, the device driver spends 100% of the CPU time reading packets from the device and queuing them in a
software output queue. This leaves no CPU time to give the queued packets to the output device hardware, so all packets (after the first
queue’s worth) are dropped due to overflow of the software output queue. With a quota, the polling system alternates between reading
input packets and sending packets to the output device.
programminghomeworkhelp.com
6. VI KeyKOS
Answer this question in the context of the paper The KeyKOS Nanokernel Architecture by Bomberger et al.
8.Suppose a machine running KeyNIX loses power while creating a new file in a directory. After the system is powered back up and
executes to a quiescent state (e.g. so that any recovery code is executed), what are the possible states that the file system could be in?
Circle all that apply (-1 point for each wrong answer).
A. The new file is allocated but the directory does not contain the new file.
B. The new file is not allocated but the directory contains a reference to the new (unallocated) file.
C. The new file is allocated and the directory contains a reference to the new file.
D. The new file is not allocated and the directory does not contain a reference to the new file.
Answer: C and D.
9. Most file system implementations worry a great deal about what happens after a crash, but the KeyNIX file system has no explicit
file system recovery code. Explain what strategy KeyNIX and KeyKOS use to recover from crashes such as the one above. In
particular, would the KeyNIX file system recover to a consistent state if a new file was created but not added to its parent directory
by the time the machine was powered off (and if so, how)?
Answer: KeyKOS periodically checkpoints the entire state of the system to disk, including process memory and the register state of each
process. If there’s a crash, KeyKOS loads the most recent checkpoint into memory and continues executing from that point. The KeyNIX
file system is implemented as a set of processes; these processes only write in-memory representations of files and directories, and do not
directly write the disk. If there were to be a crash during the creation of a file, two scenarios are possible, both of which lead to a consistent
state after recovery. The last checkpoint might have been taken early enough that the file creation hadn’t started; in this case the recovered
system will start out with neither file allocated nor directory modified (though perhaps whatever program eventually tried to create the file
will re-execute to that point and create it again). Or the last checkpoint might have been taken after the start of creating the file, in which
case the file-creation code will continue running after the recovery and create both the file and the directory entry.
programminghomeworkhelp.com
7. VII HiStar
Answer this question in the context of the paper Making Information Flow Explicit in HiStar by Zeldovich
et al.
Recall that KeyNIX maintains a global table mapping process IDs to capabilities (keys) that allow sending a message to that process’s Unix
keeper. When one process running on top of KeyNIX wants to send a signal to a different process, the sender’s Unix keeper must check that
the sender is allowed to send a signal to the recipient process (e.g. that both processes belong to the same user), before sending a “kill”
message to the recipient’s Unix keeper.
HiStar implements signals in a similar fashion: the Unix library locates the signal gate for the recipient process and sends a “kill” message
to that gate. (Even though the Unix library has no global process ID table, it can still find the signal gate for a given process ID by
enumerating that process’s container to find the signal gate, since a process ID is the ID of that process’s container object.)
10. The HiStar Unix library is not trusted; anything the Unix library can do, ordinary program code can also do. As a result, the Unix
library cannot be trusted to check that signals are only sent to processes owned by the same user. How does HiStar prevent a
malicious user program from sending signals to other users’ processes?
Answer: HiStar relies on the signal gate’s clearance to restrict the set of threads that can send a signal to a process. Each process’s signal
gate has a clearance of {uw 0, 2}, where the uw category corresponds to the user that owns that process. This means only threads that either
own uw or have a label of {uw 0, ...} can invoke this gate, and one process cannot send signals to processes of other users whose categories
it does not own.
programminghomeworkhelp.com
8. 11. Can KeyNIX be re-designed to prevent a compromised Unix keeper (controlled by an attacker) from sending signals to other
users’ processes? Sketch out a design that would run on KeyKOS, or describe why it would be difficult to implement using
capabilities.
Answer: One possible design would be to keep the keys to Unix keepers in a per-user process table, rather than in a single global table.
Unix keepers would maintain a key to the process table corresponding to the user they’re running as, and would be able to send signals to
processes in that table. Unix keepers of processes running as root would have a key to a top-level table of keys for every user’s process
table, allowing root to send signals to anyone’s process. When a root process calls setuid to run as a particular user, its Unix keeper would
delete its key for the top-level table, and only keep a key to the table for that user. A non-root process would not be able to send signals to
processes of other users, since it would have no way to get the relevant key.
An alternative design would be to create a separate key representing each user in the system (the key could refer to anything, e.g. an empty
segment), and pass this key as part of the “kill” message sent to any Unix keeper. Each Unix keeper would have a key for the user it’s
running as, and on receiving a “kill” message, it would use Keybits to compare the key it received with the key for the user it’s running as,
and only accept the signal if the keys matched. Care would have to be taken for signals sent by root. If a Unix keeper running as root were to
include root’s key in signals sent to non-root processes, those processes’ Unix keepers could save that key and use it to send their own
signals to other processes. To avoid this problem, keepers running as root would have to use the correct user’s key when sending signals,
perhaps using some other table to ensure they don’t divulge one user’s key to a Unix keeper of another user.
programminghomeworkhelp.com
9. VIII RCU
Answer this question in the context of the paper Read-Copy Update by McKenney et al.
12. Illustrate a specific problem that could occur if the reference-counted linked list search code in Figure 4 did not obtain a read
lock on list lock. Be sure to indicate what would go wrong as a result.
Answer: search() might be about to use p->next for some element, while at the same time another thread is calling delete() for
the same element. A third thread might re-use the freed element’s memory for another purpose, overwriting p->next. If search()
now dereferences p->next, it may crash or interpret an inappropriate piece of data as a list element.
13. The RCU version of the linked list search code in Figure 8 does not use locks. Describe the steps taken by RCU to ensure that the
problem seen in the above question does not occur in this case.
Answer: In Figure 9, RCU’s kfree rcu() does not immediately free the list element; it defers freeing it until all threads have
voluntarily given up the CPU. Since search() in Figure 8 doesn’t voluntarily context switch, it can safely use any list element without
fear that it will be concurrently freed and reused.
14. Suppose you want to use RCU for a linked list in the xv6 kernel. Explain how to detect quiescence in xv6. To maximize read
performance, you may not use any additional code (such as locks) around read accesses to the linked list.
Answer: xv6 has involuntary context switches: if interrupts are enabled (which they usually are in the kernel), a timer interrupt can cause a
switch to a different process. This means that any RUNNING or RUNNABLE thread that’s in the kernel might hold a reference to an
RCU-protected object; let’s call them “suspect” threads. Thus, when an object is passed to kfree rcu(), RCU must defer the free until
every thread that is suspect at that time has voluntarily given up the CPU. In xv6, this means waiting for each such thread to call sleep()
or return to user space or exit. One possibility is to associate, with each thread, a count of the number of voluntary context switches it has
performed. kfree rcu() would tag the object with each suspect thread’s count. It would free the object after all of those threads’
counts had changed.
programminghomeworkhelp.com