%%

{"created":"2023-05-11T16:47:24.682Z","updated":"2023-05-11T16:47:24.682Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":171910,"end":172096},{"type":"TextQuoteSelector","exact":"One viewfocuses on the services that the system provides; another, on the interface thatit makes available to users and programmers; a third, on its components andtheir interconnections.","prefix":"em from several vantage points. ","suffix":" In this chapter, we explore all"}]}]}

%% * One viewfocuses on the services that the system provides; another, on the interface thatit makes available to users and programmers; a third, on its components andtheir interconnections. * show annotation

^jpa057kewqp

%%

{"created":"2023-05-11T16:48:01.153Z","updated":"2023-05-11T16:48:01.153Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":173683,"end":173825},{"type":"TextQuoteSelector","exact":"User interface. Almost all operating systems have a user interface (UI).This interface can take several forms. One is a command-line interface","prefix":"s that are helpful tothe user.• ","suffix":"(CLI), which uses text commands "}]}]}

%% * User interface. Almost all operating systems have a user interface (UI).This interface can take several forms. One is a command-line interface * show annotation

^5uq2nt6fuvj

%%

{"created":"2023-05-11T16:48:25.681Z","updated":"2023-05-11T16:48:25.681Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":174372,"end":174468},{"type":"TextQuoteSelector","exact":"Program execution. The system must be able to load a program intomemory and to run that program.","prefix":"all three of these variations.• ","suffix":" The program must be able to end"}]}]}

%% * Program execution. The system must be able to load a program intomemory and to run that program. * show annotation

^bc2eoa2qgdp

%%

{"created":"2023-05-11T16:48:35.500Z","updated":"2023-05-11T16:48:35.500Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":174566,"end":174658},{"type":"TextQuoteSelector","exact":"I/O operations. A running program may require I/O, which may involve afile or an I/O device.","prefix":"abnormally (indicating error).• ","suffix":" For specific devices, special f"}]}]}

%% * I/O operations. A running program may require I/O, which may involve afile or an I/O device. * show annotation

^xc8xjvy2vea

%%

{"created":"2023-05-11T16:48:46.260Z","updated":"2023-05-11T16:48:46.260Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":174929,"end":175164},{"type":"TextQuoteSelector","exact":"File-system manipulation. The file system is of particular interest. Obvi-ously, programs need to read and write files and directories. They alsoneed to create and delete them by name, search for a given file, andlist file information.","prefix":"ust provide a means to do I/O.• ","suffix":" Finally, some operating systems"}]}]}

%% * File-system manipulation. The file system is of particular interest. Obvi-ously, programs need to read and write files and directories. They alsoneed to create and delete them by name, search for a given file, andlist file information. * show annotation

^abltz8v3fz6

%%

{"created":"2023-05-11T16:48:53.026Z","updated":"2023-05-11T16:48:53.026Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":175498,"end":175614},{"type":"TextQuoteSelector","exact":"Communications. There are many circumstances in which one processneeds to exchange information with another process.","prefix":"1 Operating-System Services 57• ","suffix":" Such communicationmay occur bet"}]}]}

%% * Communications. There are many circumstances in which one processneeds to exchange information with another process. * show annotation

^z312ogcsxd

%%

{"created":"2023-05-11T16:48:56.803Z","updated":"2023-05-11T16:48:56.803Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":175806,"end":175856},{"type":"TextQuoteSelector","exact":"Communications may be implementedvia shared memory","prefix":"together by a computer network. ","suffix":", in which two or more processes"}]}]}

%% * Communications may be implementedvia shared memory * show annotation

^iwguwhgaqqc

%%

{"created":"2023-05-11T16:49:02.392Z","updated":"2023-05-11T16:49:02.392Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":176060,"end":176076},{"type":"TextQuoteSelector","exact":"Error detection.","prefix":"cesses by theoperating system.• ","suffix":" The operating system needs to b"}]}]}

%% * Error detection. * show annotation

^gs9tw0vs99f

%%

{"created":"2023-05-11T16:49:19.480Z","updated":"2023-05-11T16:49:19.480Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":177054,"end":177191},{"type":"TextQuoteSelector","exact":"Resource allocation. When there are multiple users or multiple jobsrunning at the same time, resources must be allocated to each of them.","prefix":"uter resources amongthe users.• ","suffix":" Theoperating system manages man"}]}]}

%% * Resource allocation. When there are multiple users or multiple jobsrunning at the same time, resources must be allocated to each of them. * show annotation

^zrnwtsbm0v

%%

{"created":"2023-05-11T16:49:23.582Z","updated":"2023-05-11T16:49:23.582Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":177268,"end":177309},{"type":"TextQuoteSelector","exact":"CPU cycles, main memory, and file storage","prefix":"ypes of resources. Some (suchas ","suffix":") may have special allocationcod"}]}]}

%% * CPU cycles, main memory, and file storage * show annotation

^vjhjnmqasls

%%

{"created":"2023-05-11T16:49:30.101Z","updated":"2023-05-11T16:49:30.101Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":177368,"end":177379},{"type":"TextQuoteSelector","exact":"I/O devices","prefix":"oncode, whereas others (such as ","suffix":") may have much more generalrequ"}]}]}

%% * I/O devices * show annotation

^bg5kbivlola

%%

{"created":"2023-05-11T16:49:37.443Z","updated":"2023-05-11T16:49:37.443Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":177761,"end":177859},{"type":"TextQuoteSelector","exact":"Accounting. We want to keep track of which users use how much andwhat kinds of computer resources.","prefix":" and other peripheral devices.• ","suffix":" This record keeping may be used"}]}]}

%% * Accounting. We want to keep track of which users use how much andwhat kinds of computer resources. * show annotation

^tf26xn1pcz

%%

{"created":"2023-05-11T16:49:46.254Z","updated":"2023-05-11T16:49:46.254Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":178102,"end":178406},{"type":"TextQuoteSelector","exact":"Protection and security. The owners of information stored in a multiuser ornetworked computer system may want to control use of that information.When several separate processes execute concurrently, it should not bepossible for one process to interfere with the others or with the operatingsystem itself.","prefix":"to improve computing services.• ","suffix":" Protection involves ensuring th"}]}]}

%% * Protection and security. The owners of information stored in a multiuser ornetworked computer system may want to control use of that information.When several separate processes execute concurrently, it should not bepossible for one process to interfere with the others or with the operatingsystem itself. * show annotation

^7orxii7nwvm

%%

{"created":"2023-05-11T16:50:25.309Z","updated":"2023-05-11T16:50:25.309Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":179240,"end":179286},{"type":"TextQuoteSelector","exact":"command-line interface, or command interpreter","prefix":"ental approaches. Oneprovides a ","suffix":", that allows usersto directly e"}]}]}

%% * command-line interface, or command interpreter * show annotation

^0a4zray13o7n

%%

{"created":"2023-05-11T16:50:46.875Z","updated":"2023-05-11T16:50:46.875Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":179745,"end":179843},{"type":"TextQuoteSelector","exact":"On systems with multiple command interpreters to choose from, theinterpreters are known as shells.","prefix":"ogs on (on interactivesystems). ","suffix":" For example, on UNIX and Linux "}]}]}

%% * On systems with multiple command interpreters to choose from, theinterpreters are known as shells. * show annotation

^nen5138llk

%%

{"created":"2023-05-11T16:50:57.393Z","updated":"2023-05-11T16:50:57.393Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":180284,"end":180383},{"type":"TextQuoteSelector","exact":"The main function of the command interpreter is to get and execute the nextuser-specified command. ","prefix":"rpreter being usedon Solaris 10.","suffix":"Many of the commands given at th"}]}]}

%% * The main function of the command interpreter is to get and execute the nextuser-specified command. * show annotation

^rywr7739xf

%%

{"created":"2023-05-11T16:51:19.950Z","updated":"2023-05-11T16:51:19.950Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":180596,"end":180685},{"type":"TextQuoteSelector","exact":"In one approach, the command interpreter itself contains the code toexecute the command. ","prefix":" implemented in two generalways.","suffix":"For example, a command to delete"}]}]}

%% * In one approach, the command interpreter itself contains the code toexecute the command. * show annotation

^bw4d1cmghgv

%%

{"created":"2023-05-11T16:51:24.407Z","updated":"2023-05-11T16:51:24.407Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":181012,"end":181132},{"type":"TextQuoteSelector","exact":"An alternative approach — used by UNIX, among other operating systems— implements most commands through system programs.","prefix":"uires its own implementing code.","suffix":" In this case, thecommand interp"}]}]}

%% * An alternative approach — used by UNIX, among other operating systems— implements most commands through system programs. * show annotation

^nw1ddzq48a

%%

{"created":"2023-05-11T16:51:32.469Z","updated":"2023-05-11T16:51:32.469Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":181297,"end":181451},{"type":"TextQuoteSelector","exact":"Thus, the UNIX command to delete a filerm file.txtwould search for a file called rm, load the file into memory, and execute it withthe parameter file.txt.","prefix":"loaded into memory and executed.","suffix":" The function associated with th"}]}]}

%% * Thus, the UNIX command to delete a filerm file.txtwould search for a file called rm, load the file into memory, and execute it withthe parameter file.txt. * show annotation

^0kgfwal2u32

%%

{"created":"2023-05-11T16:52:43.951Z","updated":"2023-05-11T16:52:43.951Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":185429,"end":185443},{"type":"TextQuoteSelector","exact":"shell scripts ","prefix":"e command-line interface. These ","suffix":"arevery common on systems that a"}]}]}

%% * shell scripts * show annotation

^sgephkk698k

%%

{"created":"2023-05-11T16:53:02.733Z","updated":"2023-05-11T16:53:02.733Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":186681,"end":186836},{"type":"TextQuoteSelector","exact":"System calls provide an interface to the services made available by an operatingsystem. These calls are generally available as routines written in C andC++","prefix":"system programs.2.3 System Calls","suffix":", although certain low-level tas"}]}]}

%% * System calls provide an interface to the services made available by an operatingsystem. These calls are generally available as routines written in C andC++ * show annotation

^64rt2tt4bcp

%%

{"created":"2023-05-11T16:54:03.916Z","updated":"2023-05-11T16:54:03.916Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":189784,"end":189927},{"type":"TextQuoteSelector","exact":"As you can see, even simple programs may make heavy use of theoperating system. Frequently, systems execute thousands of system callsper second","prefix":"sequence is shown in Figure 2.5.","suffix":". Most programmers never see thi"}]}]}

%% * As you can see, even simple programs may make heavy use of theoperating system. Frequently, systems execute thousands of system callsper second * show annotation

^7fow0x74kdw

%%

{"created":"2023-05-11T16:54:27.097Z","updated":"2023-05-11T16:54:27.097Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":189986,"end":190282},{"type":"TextQuoteSelector","exact":"Typically, application developers design programs according to an applicationprogramming interface (API). The API specifies a set of functions that areavailable to an application programmer, including the parameters that arepassed to each function and the return values the programmer can expect.","prefix":"e this level of detail, however.","suffix":"Three of the most common APIs av"}]}]}

%% * Typically, application developers design programs according to an applicationprogramming interface (API). The API specifies a set of functions that areavailable to an application programmer, including the parameters that arepassed to each function and the return values the programmer can expect. * show annotation

^1a7rklow3qb

%%

{"created":"2023-05-11T16:54:43.911Z","updated":"2023-05-11T16:54:43.911Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":190902,"end":191209},{"type":"TextQuoteSelector","exact":"ehind the scenes, the functions that make up an API typically invoke theactual system calls on behalf of the application programmer. For example, theWindows function CreateProcess() (which unsurprisingly is used to createa new process) actually invokes the NTCreateProcess() system call in theWindows kernel","prefix":"s own name foreach system call.B","suffix":".Why would an application progra"}]}]}

%% * ehind the scenes, the functions that make up an API typically invoke theactual system calls on behalf of the application programmer. For example, theWindows function CreateProcess() (which unsurprisingly is used to createa new process) actually invokes the NTCreateProcess() system call in theWindows kernel * show annotation

^kav29b6n4kk

%%

{"created":"2023-05-11T16:55:31.041Z","updated":"2023-05-11T16:55:31.041Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":193441,"end":193807},{"type":"TextQuoteSelector","exact":"For most programming languages, the run-time support system (a set offunctions built into libraries included with a compiler) provides a system-call interface that serves as the link to system calls made available by theoperating system. The system-call interface intercepts function calls in the APIand invokes the necessary system calls within the operating system","prefix":"x, and Windows operatingsystems.","suffix":". Typically,a number is associat"}]}]}

%% * For most programming languages, the run-time support system (a set offunctions built into libraries included with a compiler) provides a system-call interface that serves as the link to system calls made available by theoperating system. The system-call interface intercepts function calls in the APIand invokes the necessary system calls within the operating system * show annotation

^0aslas9nl48a

%%

{"created":"2023-05-11T16:55:40.698Z","updated":"2023-05-11T16:55:40.698Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":192816,"end":192931},{"type":"TextQuoteSelector","exact":"designing a program using an API can expect her program to compile andrun on any system that supports the same API ","prefix":"r occurs, read() returns −1.mer ","suffix":"(although, in reality, architect"}]}]}

%% * designing a program using an API can expect her program to compile andrun on any system that supports the same API * show annotation

^4bqq5vbcxtz

%%

{"created":"2023-05-11T16:56:26.955Z","updated":"2023-05-11T16:56:26.955Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":195425,"end":195560},{"type":"TextQuoteSelector","exact":"Three general methods are used to pass parameters to the operating system.The simplest approach is to pass the parameters in registers.","prefix":"gth may be implicit in the call.","suffix":" In some cases,however, there ma"}]}]}

%% * Three general methods are used to pass parameters to the operating system.The simplest approach is to pass the parameters in registers. * show annotation

^9hn5v4hx5nn

%%

{"created":"2023-05-11T16:56:45.791Z","updated":"2023-05-11T16:56:45.791Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":195673,"end":195779},{"type":"TextQuoteSelector","exact":"stored in a block, or table, in memory, and theaddress of the block is passed as a parameter in a register","prefix":"es, theparameters are generally ","suffix":" (Figure 2.7). Thisis the approa"}]}]}

%% * stored in a block, or table, in memory, and theaddress of the block is passed as a parameter in a register * show annotation

^mfhao2ui49

%%

{"created":"2023-05-11T16:56:51.374Z","updated":"2023-05-11T16:56:51.374Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":195842,"end":195961},{"type":"TextQuoteSelector","exact":"Parameters also can be placed,or pushed, onto the stack by the program and popped off the stack by the operating system","prefix":"ach taken by Linux and Solaris. ","suffix":". Some operating systems prefer "}]}]}

%% * Parameters also can be placed,or pushed, onto the stack by the program and popped off the stack by the operating system * show annotation

^a82ycnzztjs

%%

{"created":"2023-05-11T16:57:03.778Z","updated":"2023-05-11T16:57:03.778Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":196347,"end":196522},{"type":"TextQuoteSelector","exact":"System calls can be grouped roughly into six major categories: processcontrol, file manipulation, device manipulation, information maintenance,communications, and protection. ","prefix":" table.2.4 Types of System Calls","suffix":"In Sections 2.4.1 through 2.4.6,"}]}]}

%% * System calls can be grouped roughly into six major categories: processcontrol, file manipulation, device manipulation, information maintenance,communications, and protection. * show annotation

^381j4cmvdbh

%%

{"created":"2023-05-11T16:58:44.023Z","updated":"2023-05-11T16:58:44.023Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":202533,"end":202735},{"type":"TextQuoteSelector","exact":"To ensure the integrityof the data being shared, operating systems often provide system calls allowinga process to lock shared data. Then, no other process can access the data untilthe lock is released.","prefix":" more processes may share data. ","suffix":" Typically, such system calls in"}]}]}

%% * To ensure the integrityof the data being shared, operating systems often provide system calls allowinga process to lock shared data. Then, no other process can access the data untilthe lock is released. * show annotation

^g8q3hkkdvp

%%

{"created":"2023-05-11T16:59:07.413Z","updated":"2023-05-11T16:59:07.413Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":203136,"end":203435},{"type":"TextQuoteSelector","exact":"The MS-DOS operatingsystem is an example of a single-tasking system. It has a command interpreterthat is invoked when the computer is started (Figure 2.9(a)). Because MS-DOSis single-tasking, it uses a simple method to run a program and does not createa new process. It loads the program into memory","prefix":"em — to clarify these concepts. ","suffix":", writing over most of itself to"}]}]}

%% * The MS-DOS operatingsystem is an example of a single-tasking system. It has a command interpreterthat is invoked when the computer is started (Figure 2.9(a)). Because MS-DOSis single-tasking, it uses a simple method to run a program and does not createa new process. It loads the program into memory * show annotation

^hn72vbzbzqo

%%

{"created":"2023-05-11T16:59:37.205Z","updated":"2023-05-11T16:59:37.205Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":204277,"end":204353},{"type":"TextQuoteSelector","exact":"FreeBSD (derived from Berkeley UNIX) is an example of a multitaskingsystem. ","prefix":"the user or to the next program.","suffix":"When a user logs on to the syste"}]}]}

%% * FreeBSD (derived from Berkeley UNIX) is an example of a multitaskingsystem. * show annotation

^s4wtksgl62

%%

{"created":"2023-05-11T16:59:43.456Z","updated":"2023-05-11T16:59:43.456Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":204550,"end":204666},{"type":"TextQuoteSelector","exact":"since FreeBSD is amultitasking system, the command interpreter may continue running whileanother program is executed","prefix":"hat the user requests. However, ","suffix":" (Figure 2.10). To start a new p"}]}]}

%% * since FreeBSD is amultitasking system, the command interpreter may continue running whileanother program is executed * show annotation

^fdj62znawy4

%%

{"created":"2023-05-11T17:00:43.537Z","updated":"2023-05-11T17:00:43.537Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":198450,"end":199275},{"type":"TextQuoteSelector","exact":"Process control◦ end, abort◦ load, execute◦ create process, terminate process◦ get process attributes, set process attributes◦ wait for time◦ wait event, signal event◦ allocate and free memory• File management◦ create file, delete file◦ open, close◦ read, write, reposition◦ get file attributes, set file attributes• Device management◦ request device, release device◦ read, write, reposition◦ get device attributes, set device attributes◦ logically attach or detach devices• Information maintenance◦ get time or date, set time or date◦ get system data, set system data◦ get process, file, or device attributes◦ set process, file, or device attributes• Communications◦ create, delete communication connection◦ send, receive messages◦ transfer status information◦ attach or detach remote devicesFigure 2.8 Types of system calls","prefix":"en2.4 Types of System Calls 67• ","suffix":".possible to combine normal and "}]}]}

%% * Process control◦ end, abort◦ load, execute◦ create process, terminate process◦ get process attributes, set process attributes◦ wait for time◦ wait event, signal event◦ allocate and free memory• File management◦ create file, delete file◦ open, close◦ read, write, reposition◦ get file attributes, set file attributes• Device management◦ request device, release device◦ read, write, reposition◦ get device attributes, set device attributes◦ logically attach or detach devices• Information maintenance◦ get time or date, set time or date◦ get system data, set system data◦ get process, file, or device attributes◦ set process, file, or device attributes• Communications◦ create, delete communication connection◦ send, receive messages◦ transfer status information◦ attach or detach remote devicesFigure 2.8 Types of system calls * show annotation

^6le2icz34f

%%

{"created":"2023-05-11T17:01:29.329Z","updated":"2023-05-11T17:01:29.329Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":207810,"end":208045},{"type":"TextQuoteSelector","exact":"A system with multiple users may require us to first request()a device, to ensure exclusive use of it. After we are finished with the device, werelease() it. These functions are similar to the open() and close() systemcalls for files. ","prefix":"al devices (forexample, files). ","suffix":"Other operating systems allow un"}]}]}

%% * A system with multiple users may require us to first request()a device, to ensure exclusive use of it. After we are finished with the device, werelease() it. These functions are similar to the open() and close() systemcalls for files. * show annotation

^jdsmjmhzo3o

%%

{"created":"2023-05-11T17:01:36.438Z","updated":"2023-05-11T17:01:36.438Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":208252,"end":208371},{"type":"TextQuoteSelector","exact":"Once the device has been requested (and allocated to us), we can read(),write(), and (possibly) reposition() the device","prefix":"hich are described in Chapter 7.","suffix":", just as we can with files. Inf"}]}]}

%% * Once the device has been requested (and allocated to us), we can read(),write(), and (possibly) reposition() the device * show annotation

^4w0bdqo9fdl

%%

{"created":"2023-05-11T17:01:44.684Z","updated":"2023-05-11T17:01:44.684Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":209002,"end":209210},{"type":"TextQuoteSelector","exact":"Many system calls exist simply for the purpose of transferring informationbetween the user program and the operating system. For example, mostsystems have a system call to return the current time() and date()","prefix":"ce.2.4.4 Information Maintenance","suffix":". Other system calls may return "}]}]}

%% * Many system calls exist simply for the purpose of transferring informationbetween the user program and the operating system. For example, mostsystems have a system call to return the current time() and date() * show annotation

^stewwd9yfsj

%%

{"created":"2023-05-11T17:01:51.172Z","updated":"2023-05-11T17:01:51.172Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":209402,"end":209515},{"type":"TextQuoteSelector","exact":"Another set of system calls is helpful in debugging a program. Manysystems provide system calls to dump() memory.","prefix":"memory or disk space, and so on.","suffix":" This provision is useful fordeb"}]}]}

%% * Another set of system calls is helpful in debugging a program. Manysystems provide system calls to dump() memory. * show annotation

^qeun5irw3rd

%%

{"created":"2023-05-11T17:02:14.083Z","updated":"2023-05-11T17:02:14.083Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":210567,"end":210898},{"type":"TextQuoteSelector","exact":"There are two common models of interprocess communication: the message-passing model and the shared-memory model. In the message-passing model,the communicating processes exchange messages with one another to transferinformation. Messages can be exchanged between the processes either directlyor indirectly through a common mailbox","prefix":"ormally kept.2.4.5 Communication","suffix":". Before communication can takep"}]}]}

%% * There are two common models of interprocess communication: the message-passing model and the shared-memory model. In the message-passing model,the communicating processes exchange messages with one another to transferinformation. Messages can be exchanged between the processes either directlyor indirectly through a common mailbox * show annotation

^blqen4kx8k7

%%

{"created":"2023-05-11T17:02:42.988Z","updated":"2023-05-11T17:02:42.988Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":211845,"end":212060},{"type":"TextQuoteSelector","exact":"Most processes that will be receiving connections are special-purposedaemons, which are system programs provided for that purpose. They executea wait for connection() call and are awakened when a connection is made.","prefix":"ith an accept connection()call. ","suffix":"The source of the communication,"}]}]}

%% * Most processes that will be receiving connections are special-purposedaemons, which are system programs provided for that purpose. They executea wait for connection() call and are awakened when a connection is made. * show annotation

^8hlq9xl5g4g

%%

{"created":"2023-05-11T17:02:53.675Z","updated":"2023-05-11T17:02:53.675Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":212294,"end":212469},{"type":"TextQuoteSelector","exact":"In the shared-memory model, processes use shared memory create()and shared memory attach() system calls to create and gain access to regionsof memory owned by other processes.","prefix":"all terminatesthe communication.","suffix":" Recall that, normally, the oper"}]}]}

%% * In the shared-memory model, processes use shared memory create()and shared memory attach() system calls to create and gain access to regionsof memory owned by other processes. * show annotation

^j5jt45scutb

%%

{"created":"2023-05-11T17:16:37.776Z","updated":"2023-05-11T17:16:37.776Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":214608,"end":214851},{"type":"TextQuoteSelector","exact":"At the lowest level ishardware. Next is the operating system, then the system programs, and finallythe application programs. System programs, also known as system utilities,provide a convenient environment for program development and execution","prefix":"the logical computer hierarchy. ","suffix":".Some of them are simply user in"}]}]}

%% * At the lowest level ishardware. Next is the operating system, then the system programs, and finallythe application programs. System programs, also known as system utilities,provide a convenient environment for program development and execution * show annotation

^0g4pn6da0wko

%%

{"created":"2023-05-11T17:16:41.667Z","updated":"2023-05-11T17:16:41.667Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":214946,"end":214988},{"type":"TextQuoteSelector","exact":"They can be divided into these categories:","prefix":"s are considerablymore complex. ","suffix":"• File management. These program"}]}]}

%% * They can be divided into these categories: * show annotation

^ojp7wbg8kh

%%

{"created":"2023-05-11T17:16:45.719Z","updated":"2023-05-11T17:16:45.719Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":214990,"end":215005},{"type":"TextQuoteSelector","exact":"File management","prefix":"divided into these categories:• ","suffix":". These programs create, delete,"}]}]}

%% * File management * show annotation

^89rl66ogom8

%%

{"created":"2023-05-11T17:16:50.734Z","updated":"2023-05-11T17:16:50.734Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":215119,"end":215234},{"type":"TextQuoteSelector","exact":"Status information. Some programs simply ask the system for the date,time, amount of available memory or disk space","prefix":"ipulate files and directories.• ","suffix":", number of users, orsimilar sta"}]}]}

%% * Status information. Some programs simply ask the system for the date,time, amount of available memory or disk space * show annotation

^wcczo1un3bm

%%

{"created":"2023-05-11T17:16:57.489Z","updated":"2023-05-11T17:16:57.489Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":215617,"end":215634},{"type":"TextQuoteSelector","exact":"File modification","prefix":"eve configuration information.• ","suffix":". Several text editors may be av"}]}]}

%% * File modification * show annotation

^bguj6liwvxe

%%

{"created":"2023-05-11T17:17:02.650Z","updated":"2023-05-11T17:17:02.650Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":215858,"end":215937},{"type":"TextQuoteSelector","exact":"Programming-language support. Compilers, assemblers, debuggers, andinterpreters","prefix":"rmtransformations of the text.• ","suffix":" for common programming language"}]}]}

%% * Programming-language support. Compilers, assemblers, debuggers, andinterpreters * show annotation

^dxy52w7hvad

%%

{"created":"2023-05-11T17:17:11.477Z","updated":"2023-05-11T17:17:11.477Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":216085,"end":216301},{"type":"TextQuoteSelector","exact":"Program loading and execution. Once a program is assembled or com-piled, it must be loaded into memory to be executed. The system mayprovide absolute loaders, relocatable loaders, linkage editors, and overlayloaders.","prefix":"ailable as aseparate download.• ","suffix":" Debugging systems for either hi"}]}]}

%% * Program loading and execution. Once a program is assembled or com-piled, it must be loaded into memory to be executed. The system mayprovide absolute loaders, relocatable loaders, linkage editors, and overlayloaders. * show annotation

^3lgb24a5dtd

%%

{"created":"2023-05-11T17:17:15.164Z","updated":"2023-05-11T17:17:15.164Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":216394,"end":216525},{"type":"TextQuoteSelector","exact":"Communications. These programs provide the mechanism for creatingvirtual connections among processes, users, and computer systems. ","prefix":"nelanguage are needed as well.• ","suffix":"Theyallow users to send messages"}]}]}

%% * Communications. These programs provide the mechanism for creatingvirtual connections among processes, users, and computer systems. * show annotation

^ymfbug3yli

%%

{"created":"2023-05-11T17:17:20.368Z","updated":"2023-05-11T17:17:20.368Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":216699,"end":216820},{"type":"TextQuoteSelector","exact":"Background services. All general-purpose systems have methods forlaunching certain system-program processes at boot time.","prefix":"es fromone machine to another.• ","suffix":" Some of theseprocesses terminat"}]}]}

%% * Background services. All general-purpose systems have methods forlaunching certain system-program processes at boot time. * show annotation

^o8py4t9keoo

%%

{"created":"2023-05-11T17:17:28.666Z","updated":"2023-05-11T17:17:28.666Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":216940,"end":217029},{"type":"TextQuoteSelector","exact":"Constantly running system-programprocesses are known as services, subsystems, or daemons.","prefix":"run until the system is halted. ","suffix":" One example isthe network daemo"}]}]}

%% * Constantly running system-programprocesses are known as services, subsystems, or daemons. * show annotation

^j9ilp47u0i

%%

{"created":"2023-05-11T17:17:56.216Z","updated":"2023-05-11T17:17:56.216Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":217637,"end":217845},{"type":"TextQuoteSelector","exact":"most operating systems are supplied withprograms that are useful in solving common problems or performing commonoperations. Such application programs include Web browsers, word proces-sors and text formatters","prefix":"ies.Along with system programs, ","suffix":", spreadsheets, database systems"}]}]}

%% * most operating systems are supplied withprograms that are useful in solving common problems or performing commonoperations. Such application programs include Web browsers, word proces-sors and text formatters * show annotation

^1j1k3effr9o

%%

{"created":"2023-05-11T17:18:45.572Z","updated":"2023-05-11T17:18:45.572Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":286159,"end":286304},{"type":"TextQuoteSelector","exact":"A system therefore consists of a collection of processes: operating-system processes executing system code and user processes executing usercode.","prefix":" left outside thekernel itself. ","suffix":" Potentially, all these processe"}]}]}

%% * A system therefore consists of a collection of processes: operating-system processes executing system code and user processes executing usercode. * show annotation

^nyzze1czr8e

%%

{"created":"2023-05-11T17:18:57.359Z","updated":"2023-05-11T17:18:57.359Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":287052,"end":287080},{"type":"TextQuoteSelector","exact":"A batch system executes jobs","prefix":" to callall the CPU activities. ","suffix":", whereas a time-shared105106 Ch"}]}]}

%% * A batch system executes jobs * show annotation

^2b31ra10u7j

%%

{"created":"2023-05-11T17:19:01.887Z","updated":"2023-05-11T17:19:01.887Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":287129,"end":287163},{"type":"TextQuoteSelector","exact":"system has user programs, or tasks","prefix":"shared105106 Chapter 3 Processes","suffix":". Even on a single-user system, "}]}]}

%% * system has user programs, or tasks * show annotation

^1wuf6c9zh2k

%%

{"created":"2023-05-11T17:19:44.675Z","updated":"2023-05-11T17:19:44.675Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":288086,"end":288121},{"type":"TextQuoteSelector","exact":"a process is a program in execution","prefix":"formally, as mentioned earlier, ","suffix":". A processis more than the prog"}]}]}

%% * a process is a program in execution * show annotation

^xzm0z0q63fn

%%

{"created":"2023-05-11T17:19:59.142Z","updated":"2023-05-11T17:19:59.142Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":288215,"end":288296},{"type":"TextQuoteSelector","exact":" includes the current activity, as represented by the value of the programcounter","prefix":"nown as the text section.It also","suffix":" and the contents of the process"}]}]}

%% * includes the current activity, as represented by the value of the programcounter * show annotation

^cwat0f4yfic

%%

{"created":"2023-05-11T17:20:05.767Z","updated":"2023-05-11T17:20:05.767Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":288344,"end":288651},{"type":"TextQuoteSelector","exact":"A process generally alsoincludes the process stack, which contains temporary data (such as functionparameters, return addresses, and local variables), and a data section, whichcontains global variables. A process may also include a heap, which is memorythat is dynamically allocated during process run time.","prefix":"s of the processor’s registers. ","suffix":" The structure of a processin me"}]}]}

%% * A process generally alsoincludes the process stack, which contains temporary data (such as functionparameters, return addresses, and local variables), and a data section, whichcontains global variables. A process may also include a heap, which is memorythat is dynamically allocated during process run time. * show annotation

^ojrm8bjnq1

%%

{"created":"2023-05-11T17:20:13.070Z","updated":"2023-05-11T17:20:13.070Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":289194,"end":289211},{"type":"TextQuoteSelector","exact":"Process in memory","prefix":"text0maxdataheapstackFigure 3.1 ","suffix":".3.1 Process Concept 107are doub"}]}]}

%% * Process in memory * show annotation

^uhztt1as4q9

%%

{"created":"2023-05-11T17:20:24.273Z","updated":"2023-05-11T17:20:24.273Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":288908,"end":289036},{"type":"TextQuoteSelector","exact":"a process is an active entity,with a program counter specifying the next instruction to execute and a setof associated resources","prefix":" executable file). In contrast, ","suffix":". A program becomes a process wh"}]}]}

%% * a process is an active entity,with a program counter specifying the next instruction to execute and a setof associated resources * show annotation

^ajrnd5zaovf

%%

{"created":"2023-05-11T17:20:28.304Z","updated":"2023-05-11T17:20:28.304Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":289038,"end":289110},{"type":"TextQuoteSelector","exact":"A program becomes a process when an executable fileis loaded into memory","prefix":"d a setof associated resources. ","suffix":". Two common techniques for load"}]}]}

%% * A program becomes a process when an executable fileis loaded into memory * show annotation

^2f2e640zjun

%%

{"created":"2023-05-11T17:20:48.181Z","updated":"2023-05-11T17:20:48.181Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":289599,"end":289697},{"type":"TextQuoteSelector","exact":"the sameuser may invoke many copies of the web browser program. Each of these is aseparate process","prefix":" copies of the mail program, or ","suffix":"; and although the text sections"}]}]}

%% * the sameuser may invoke many copies of the web browser program. Each of these is aseparate process * show annotation

^ru1m1iouwp

%%

{"created":"2023-05-11T17:21:06.577Z","updated":"2023-05-11T17:21:06.577Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":290651,"end":290690},{"type":"TextQuoteSelector","exact":"As a process executes, it changes state","prefix":"ava language.3.1.2 Process State","suffix":". The state of a process is defi"}]}]}

%% * As a process executes, it changes state * show annotation

^ahcbw95xf8a

%%

{"created":"2023-05-11T17:21:08.505Z","updated":"2023-05-11T17:21:08.505Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":290824,"end":290827},{"type":"TextQuoteSelector","exact":"New","prefix":"in one of the followingstates:• ","suffix":". The process is being created.•"}]}]}

%% * New * show annotation

^qxo8u5dvtif

%%

{"created":"2023-05-11T17:21:09.691Z","updated":"2023-05-11T17:21:09.691Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":290860,"end":290867},{"type":"TextQuoteSelector","exact":"Running","prefix":" The process is being created.• ","suffix":". Instructions are being execute"}]}]}

%% * Running * show annotation

^i7awysb6z9j

%%

{"created":"2023-05-11T17:21:10.903Z","updated":"2023-05-11T17:21:10.903Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":290903,"end":290910},{"type":"TextQuoteSelector","exact":"Waiting","prefix":"structions are being executed.• ","suffix":". The process is waiting for som"}]}]}

%% * Waiting * show annotation

^sjnmceueczj

%%

{"created":"2023-05-11T17:21:12.007Z","updated":"2023-05-11T17:21:12.007Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":291013,"end":291018},{"type":"TextQuoteSelector","exact":"Ready","prefix":"ion or reception of a signal).• ","suffix":". The process is waiting to be a"}]}]}

%% * Ready * show annotation

^iwuddaqhuya

%%

{"created":"2023-05-11T17:21:24.127Z","updated":"2023-05-11T17:21:24.127Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":291322,"end":291466},{"type":"TextQuoteSelector","exact":"It is important to realizethat only one process can be running on any processor at any instant. Manyprocesses may be ready and waiting, however.","prefix":"inely delineate process states. ","suffix":" The state diagram corresponding"}]}]}

%% * It is important to realizethat only one process can be running on any processor at any instant. Manyprocesses may be ready and waiting, however. * show annotation

^tjvif592rf

%%

{"created":"2023-05-11T17:21:30.097Z","updated":"2023-05-11T17:21:30.097Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":291568,"end":291686},{"type":"TextQuoteSelector","exact":"Each process is represented in the operating system by a process control block(PCB) — also called a task control block","prefix":" 3.2.3.1.3 Process Control Block","suffix":". A PCB is shown in Figure 3.3. "}]}]}

%% * Each process is represented in the operating system by a process control block(PCB) — also called a task control block * show annotation

^x76rdtkode

%%

{"created":"2023-05-11T17:21:37.115Z","updated":"2023-05-11T17:21:37.115Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":291717,"end":291807},{"type":"TextQuoteSelector","exact":" It containsmany pieces of information associated with a specific process, including these","prefix":"k. A PCB is shown in Figure 3.3.","suffix":":108 Chapter 3 Processesnew term"}]}]}

%% * It containsmany pieces of information associated with a specific process, including these * show annotation

^5ra5t3crusn

%%

{"created":"2023-05-11T17:21:40.792Z","updated":"2023-05-11T17:21:40.792Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":291983,"end":291996},{"type":"TextQuoteSelector","exact":"Process state","prefix":" 3.2 Diagram of process state.• ","suffix":". The state may be new, ready, r"}]}]}

%% * Process state * show annotation

^t72zt1zykf

%%

{"created":"2023-05-11T17:21:43.477Z","updated":"2023-05-11T17:21:43.477Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":292064,"end":292079},{"type":"TextQuoteSelector","exact":"Program counter","prefix":"ng, waiting, halted, andso on.• ","suffix":". The counter indicates the addr"}]}]}

%% * Program counter * show annotation

^uh2fgq3orqd

%%

{"created":"2023-05-11T17:21:47.649Z","updated":"2023-05-11T17:21:47.649Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":292172,"end":292185},{"type":"TextQuoteSelector","exact":"CPU registers","prefix":" be executed for this process.• ","suffix":". The registers vary in number a"}]}]}

%% * CPU registers * show annotation

^pmo6tl51z3

%%

{"created":"2023-05-11T17:21:54.154Z","updated":"2023-05-11T17:21:54.154Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":292556,"end":292583},{"type":"TextQuoteSelector","exact":"CPU-scheduling information.","prefix":"rectly afterward (Figure 3.4).• ","suffix":" This information includes a pro"}]}]}

%% * CPU-scheduling information. * show annotation

^wuxv8s2ep9

%%

{"created":"2023-05-11T17:21:58.535Z","updated":"2023-05-11T17:21:58.535Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":292739,"end":292768},{"type":"TextQuoteSelector","exact":"Memory-management information","prefix":"describes process scheduling.)• ","suffix":". This information may include s"}]}]}

%% * Memory-management information * show annotation

^b0pavvsxmln

%%

{"created":"2023-05-11T17:22:08.560Z","updated":"2023-05-11T17:22:08.560Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":293066,"end":293093},{"type":"TextQuoteSelector","exact":"Process control block (PCB)","prefix":"n filesregisters• • •Figure 3.3 ","suffix":".3.1 Process Concept 109process "}]}]}

%% * Process control block (PCB) * show annotation

^vxczpgpsfb9

%%

{"created":"2023-05-11T17:22:18.388Z","updated":"2023-05-11T17:22:18.388Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":293395,"end":293417},{"type":"TextQuoteSelector","exact":"Accounting information","prefix":"witch from process to process.• ","suffix":". This information includes the "}]}]}

%% * Accounting information * show annotation

^1f4bgcmlj7ch

%%

{"created":"2023-05-11T17:22:20.941Z","updated":"2023-05-11T17:22:20.941Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":293547,"end":293569},{"type":"TextQuoteSelector","exact":"I/O status information","prefix":" or process numbers,and so on.• ","suffix":". This information includes the "}]}]}

%% * I/O status information * show annotation

^05el2yfijt37

%%

{"created":"2023-05-11T17:22:53.261Z","updated":"2023-05-11T17:22:53.261Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":294035,"end":294225},{"type":"TextQuoteSelector","exact":"single thread of control allows the process to perform only one task ata time. The user cannot simultaneously type in characters and run the spellchecker within the same process, for example","prefix":"ructions is being executed.This ","suffix":". Most modern operating systemsh"}]}]}

%% * single thread of control allows the process to perform only one task ata time. The user cannot simultaneously type in characters and run the spellchecker within the same process, for example * show annotation

^2b2o1wx90co

%%

{"created":"2023-05-11T17:23:06.016Z","updated":"2023-05-11T17:23:06.016Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":294498,"end":294590},{"type":"TextQuoteSelector","exact":"On a system that supports threads, the PCB is expanded to includeinformation for each thread","prefix":"ple threads can runin parallel. ","suffix":". Other changes throughout the s"}]}]}

%% * On a system that supports threads, the PCB is expanded to includeinformation for each thread * show annotation

^ir1n8z1e5et

%%

{"created":"2023-05-11T17:23:50.807Z","updated":"2023-05-11T17:23:50.807Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":297066,"end":297200},{"type":"TextQuoteSelector","exact":"the process scheduler selectsan available process (possibly from a set of several available processes) forprogram execution on the CPU","prefix":"ning. To meet these objectives, ","suffix":". For a single-processor system,"}]}]}

%% * the process scheduler selectsan available process (possibly from a set of several available processes) forprogram execution on the CPU * show annotation

^6f07wkpcof

%%

{"created":"2023-05-11T17:24:00.082Z","updated":"2023-05-11T17:24:00.082Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":297406,"end":297512},{"type":"TextQuoteSelector","exact":"As processes enter the system, they are put into a job queue, which consistsof all processes in the system","prefix":"cheduled.3.2.1 Scheduling Queues","suffix":". The processes that are residin"}]}]}

%% * As processes enter the system, they are put into a job queue, which consistsof all processes in the system * show annotation

^1rtb8pdsaa3

%%

{"created":"2023-05-11T17:24:05.294Z","updated":"2023-05-11T17:24:05.294Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":297514,"end":297639},{"type":"TextQuoteSelector","exact":"The processes that are residing in main memoryand are ready and waiting to execute are kept on a list called the ready queue.","prefix":"of all processes in the system. ","suffix":"This queue is generally stored a"}]}]}

%% * The processes that are residing in main memoryand are ready and waiting to execute are kept on a list called the ready queue. * show annotation

^tdmvd4dm5ho

%%

{"created":"2023-05-11T17:24:27.353Z","updated":"2023-05-11T17:24:27.353Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":298313,"end":298395},{"type":"TextQuoteSelector","exact":"The list of processes waiting for a particular I/O device is called adevice queue.","prefix":"e may have to wait forthe disk. ","suffix":" Each device has its own device "}]}]}

%% * The list of processes waiting for a particular I/O device is called adevice queue. * show annotation

^z9wt3fzbvo

%%

{"created":"2023-05-11T17:24:57.240Z","updated":"2023-05-11T17:24:57.240Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":299096,"end":299462},{"type":"TextQuoteSelector","exact":"Once the process is allocated the CPUand is executing, one of several events could occur:• The process could issue an I/O request and then be placed in an I/O queue.• The process could create a new child process and wait for the child’stermination.• The process could be removed forcibly from the CPU, as a result of an interrupt, and be put back in the ready queue.","prefix":"d for execution, or dispatched. ","suffix":"In the first two cases, the proc"}]}]}

%% * Once the process is allocated the CPUand is executing, one of several events could occur:• The process could issue an I/O request and then be placed in an I/O queue.• The process could create a new child process and wait for the child’stermination.• The process could be removed forcibly from the CPU, as a result of an interrupt, and be put back in the ready queue. * show annotation

^18wlv819z6n

%%

{"created":"2023-05-11T17:25:28.092Z","updated":"2023-05-11T17:25:28.092Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":299831,"end":299998},{"type":"TextQuoteSelector","exact":"The operating system must select, for scheduling purposes, processesfrom these queues in some fashion. The selection process is carried out by theappropriate scheduler","prefix":" queues throughout itslifetime. ","suffix":".Often, in a batch system, more "}]}]}

%% * The operating system must select, for scheduling purposes, processesfrom these queues in some fashion. The selection process is carried out by theappropriate scheduler * show annotation

^iqhq7ufloc

%%

{"created":"2023-05-11T17:25:38.518Z","updated":"2023-05-11T17:25:38.518Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":300200,"end":300301},{"type":"TextQuoteSelector","exact":"The long-term scheduler, or jobscheduler, selects processes from this pool and loads them into memory","prefix":"y are kept for later execution. ","suffix":" for3.2 Process Scheduling 113ex"}]}]}

%% * The long-term scheduler, or jobscheduler, selects processes from this pool and loads them into memory * show annotation

^irls5oismvn

%%

{"created":"2023-05-11T17:25:43.132Z","updated":"2023-05-11T17:25:43.132Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":300342,"end":300480},{"type":"TextQuoteSelector","exact":"The short-term scheduler, or CPU scheduler, selects from amongthe processes that are ready to execute and allocates the CPU to one of them","prefix":"rocess Scheduling 113execution. ","suffix":".The primary distinction between"}]}]}

%% * The short-term scheduler, or CPU scheduler, selects from amongthe processes that are ready to execute and allocates the CPU to one of them * show annotation

^484zt4ohqna

%%

{"created":"2023-05-11T17:25:53.946Z","updated":"2023-05-11T17:25:53.946Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":300565,"end":300638},{"type":"TextQuoteSelector","exact":"The short-term scheduler must select a new process for the CPUfrequently.","prefix":" lies in frequencyof execution. ","suffix":" A process may execute for only "}]}]}

%% * The short-term scheduler must select a new process for the CPUfrequently. * show annotation

^szlr4ry230f

%%

{"created":"2023-05-11T17:26:11.550Z","updated":"2023-05-11T17:26:11.550Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":301060,"end":301283},{"type":"TextQuoteSelector","exact":"The long-term scheduler executes much less frequently; minutes may sep-arate the creation of one new process and the next. The long-term schedulercontrols the degree of multiprogramming (the number of processes in mem-ory).","prefix":" simply for scheduling the work.","suffix":" If the degree of multiprogrammi"}]}]}

%% * The long-term scheduler executes much less frequently; minutes may sep-arate the creation of one new process and the next. The long-term schedulercontrols the degree of multiprogramming (the number of processes in mem-ory). * show annotation

^c0zh0esqodm

%%

{"created":"2023-05-11T17:26:21.123Z","updated":"2023-05-11T17:26:21.123Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":301537,"end":301695},{"type":"TextQuoteSelector","exact":"Because of the longer interval betweenexecutions, the long-term scheduler can afford to take more time to decidewhich process should be selected for execution","prefix":"en a process leaves the system. ","suffix":".It is important that the long-t"}]}]}

%% * Because of the longer interval betweenexecutions, the long-term scheduler can afford to take more time to decidewhich process should be selected for execution * show annotation

^tj6pjp82lmh

%%

{"created":"2023-05-11T17:26:32.795Z","updated":"2023-05-11T17:26:32.795Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":301843,"end":302055},{"type":"TextQuoteSelector","exact":"An I/O-bound process is one that spends more of its time doing I/O thanit spends doing computations. A CPU-bound process, in contrast, generatesI/O requests infrequently, using more of its time doing computations","prefix":"s either I/O bound or CPU bound.","suffix":". It isimportant that the long-t"}]}]}

%% * An I/O-bound process is one that spends more of its time doing I/O thanit spends doing computations. A CPU-bound process, in contrast, generatesI/O requests infrequently, using more of its time doing computations * show annotation

^f3m2ssu5qea

%%

{"created":"2023-05-11T17:27:07.997Z","updated":"2023-05-11T17:27:07.997Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":303217,"end":303555},{"type":"TextQuoteSelector","exact":"The key idea behind a medium-term scheduler isthat sometimes it can be advantageous to remove a process from memory(and from active contention for the CPU) and thus reduce the degree ofmultiprogramming. Later, the process can be reintroduced into memory, and itsexecution can be continued where it left off. This scheme is called swapping","prefix":"ler isdiagrammed in Figure 3.7. ","suffix":".The process is swapped out, and"}]}]}

%% * The key idea behind a medium-term scheduler isthat sometimes it can be advantageous to remove a process from memory(and from active contention for the CPU) and thus reduce the degree ofmultiprogramming. Later, the process can be reintroduced into memory, and itsexecution can be continued where it left off. This scheme is called swapping * show annotation

^v2pi4kx2owh

%%

{"created":"2023-05-11T17:27:27.362Z","updated":"2023-05-11T17:27:27.362Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":304238,"end":304404},{"type":"TextQuoteSelector","exact":"When an interrupt occurs, the systemneeds to save the current context of the process running on the CPU so thatit can restore that context when its processing is done","prefix":"tly on general-purpose systems. ","suffix":", essentially suspendingthe proc"}]}]}

%% * When an interrupt occurs, the systemneeds to save the current context of the process running on the CPU so thatit can restore that context when its processing is done * show annotation

^97jv8c9dw3k

%%

{"created":"2023-05-11T17:27:36.029Z","updated":"2023-05-11T17:27:36.029Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":304629,"end":304773},{"type":"TextQuoteSelector","exact":"Generically, we perform a statesave of the current state of the CPU, be it in kernel or user mode, and then a state restore to resume operations","prefix":" memory-management information. ","suffix":".Switching the CPU to another pr"}]}]}

%% * Generically, we perform a statesave of the current state of the CPU, be it in kernel or user mode, and then a state restore to resume operations * show annotation

^sm5ovnjs5lp

%%

{"created":"2023-05-11T17:27:48.108Z","updated":"2023-05-11T17:27:48.108Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":304949,"end":305100},{"type":"TextQuoteSelector","exact":"When a context switch occurs, the kernel saves the contextof the old process in its PCB and loads the saved context of the new processscheduled to run.","prefix":"sk is knownas a context switch. ","suffix":" Context-switch time is pure ove"}]}]}

%% * When a context switch occurs, the kernel saves the contextof the old process in its PCB and loads the saved context of the new processscheduled to run. * show annotation

^8wkvxxxa25d

%%

{"created":"2023-05-11T17:29:09.252Z","updated":"2023-05-11T17:29:09.252Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":362987,"end":363053},{"type":"TextQuoteSelector","exact":"One of the most common forms of remote service is the RPC paradigm","prefix":"pes.3.6.2 Remote Procedure Calls","suffix":", whichwe discussed briefly in S"}]}]}

%% * One of the most common forms of remote service is the RPC paradigm * show annotation

^j6kkv2lwayc

%%

{"created":"2023-05-11T17:29:42.562Z","updated":"2023-05-11T17:29:42.562Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":364105,"end":364434},{"type":"TextQuoteSelector","exact":"In contrast to IPC messages, the messages exchanged in RPC communicationare well structured and are thus no longer just packets of data. Each message isaddressed to an RPC daemon listening to a port on the remote system, and eachcontains an identifier specifying the function to execute and the parametersto pass to that function","prefix":"cheme to provide remote service.","suffix":". The function is then executed "}]}]}

%% * In contrast to IPC messages, the messages exchanged in RPC communicationare well structured and are thus no longer just packets of data. Each message isaddressed to an RPC daemon listening to a port on the remote system, and eachcontains an identifier specifying the function to execute and the parametersto pass to that function * show annotation

^25rhopp0192

%%

{"created":"2023-05-11T17:29:54.997Z","updated":"2023-05-11T17:29:54.997Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":365228,"end":365453},{"type":"TextQuoteSelector","exact":"The semantics of RPCs allows a client to invoke a procedure on a remotehost as it would invoke a procedure locally. The RPC system hides the detailsthat allow communication to take place by providing a stub on the client side","prefix":" be received in a reply message.","suffix":".Typically, a separate stub exis"}]}]}

%% * The semantics of RPCs allows a client to invoke a procedure on a remotehost as it would invoke a procedure locally. The RPC system hides the detailsthat allow communication to take place by providing a stub on the client side * show annotation

^ic1eego2ll8

%%

{"created":"2023-05-11T17:30:23.285Z","updated":"2023-05-11T17:30:23.285Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":366741,"end":366880},{"type":"TextQuoteSelector","exact":"many RPC systemsdefine a machine-independent representation of data. One such representationis known as external data representation (XDR).","prefix":" resolve differences like this, ","suffix":" On the client side, parameterma"}]}]}

%% * many RPC systemsdefine a machine-independent representation of data. One such representationis known as external data representation (XDR). * show annotation

^gpwjs3ts9xt

%%

{"created":"2023-05-11T17:30:31.589Z","updated":"2023-05-11T17:30:31.589Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":366454,"end":366610},{"type":"TextQuoteSelector","exact":"Some systems (known as big-endian) store the most significant bytefirst, while other systems (known as little-endian) store the least significantbyte first.","prefix":"presentation of 32-bitintegers. ","suffix":" Neither order is “better”per se"}]}]}

%% * Some systems (known as big-endian) store the most significant bytefirst, while other systems (known as little-endian) store the least significantbyte first. * show annotation

^7bmxg213j7x

%%

{"created":"2023-05-11T17:33:04.658Z","updated":"2023-05-11T17:33:04.658Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":370486,"end":370552},{"type":"TextQuoteSelector","exact":"The RPC scheme is useful in implementing a distributed file system","prefix":"3.23 shows a sample interaction.","suffix":"(Chapter 17). Such a system can "}]}]}

%% * The RPC scheme is useful in implementing a distributed file system * show annotation

^c0cdl5l2mh4

%%

{"created":"2023-05-11T17:33:21.310Z","updated":"2023-05-11T17:33:21.310Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371297,"end":371359},{"type":"TextQuoteSelector","exact":"A pipe acts as a conduit allowing two processes to communicate","prefix":" is tobe transferred.3.6.3 Pipes","suffix":". Pipes wereone of the first IPC"}]}]}

%% * A pipe acts as a conduit allowing two processes to communicate * show annotation

^wt6z39okcr

%%

{"created":"2023-05-11T17:33:28.703Z","updated":"2023-05-11T17:33:28.703Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371560,"end":371614},{"type":"TextQuoteSelector","exact":"In implementing a pipe, four issuesmust be considered:","prefix":"hey also have some limitations. ","suffix":"1. Does the pipe allow bidirecti"}]}]}

%% * In implementing a pipe, four issuesmust be considered: * show annotation

^naqx8p33lff

%%

{"created":"2023-05-11T17:33:34.097Z","updated":"2023-05-11T17:33:34.097Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371637,"end":371700},{"type":"TextQuoteSelector","exact":"bidirectional communication, or is communicationunidirectional?","prefix":"nsidered:1. Does the pipe allow ","suffix":"2. If two-way communication is a"}]}]}

%% * bidirectional communication, or is communicationunidirectional? * show annotation

^xyixcjtuai

%%

{"created":"2023-05-11T17:33:40.171Z","updated":"2023-05-11T17:33:40.171Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371703,"end":371866},{"type":"TextQuoteSelector","exact":"If two-way communication is allowed, is it half duplex (data can travelonly one way at a time) or full duplex (data can travel in both directionsat the same time)?","prefix":" communicationunidirectional?2. ","suffix":"3. Must a relationship (such as "}]}]}

%% * If two-way communication is allowed, is it half duplex (data can travelonly one way at a time) or full duplex (data can travel in both directionsat the same time)? * show annotation

^4mkgro7wppi

%%

{"created":"2023-05-11T17:33:46.121Z","updated":"2023-05-11T17:33:46.121Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371869,"end":371957},{"type":"TextQuoteSelector","exact":"Must a relationship (such as parent – child) exist between the communi-cating processes?","prefix":" directionsat the same time)?3. ","suffix":"4. Can the pipes communicate ove"}]}]}

%% * Must a relationship (such as parent – child) exist between the communi-cating processes? * show annotation

^43m6j8we1jw

%%

{"created":"2023-05-11T17:33:49.850Z","updated":"2023-05-11T17:33:49.850Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":371960,"end":372064},{"type":"TextQuoteSelector","exact":"Can the pipes communicate over a network, or must the communicatingprocesses reside on the same machine?","prefix":"the communi-cating processes?4. ","suffix":"In the following sections, we ex"}]}]}

%% * Can the pipes communicate over a network, or must the communicatingprocesses reside on the same machine? * show annotation

^dvtoa5dxh29

%%

{"created":"2023-05-11T17:34:02.684Z","updated":"2023-05-11T17:34:02.684Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":372219,"end":372507},{"type":"TextQuoteSelector","exact":"Ordinary pipes allow two processes to communicate in standard producer –consumer fashion: the producer writes to one end of the pipe (the write-end)and the consumer reads from the other end (the read-end). As a result, ordinarypipes are unidirectional, allowing only one-way communication","prefix":"med pipes.3.6.3.1 Ordinary Pipes","suffix":". If two-waycommunication is req"}]}]}

%% * Ordinary pipes allow two processes to communicate in standard producer –consumer fashion: the producer writes to one end of the pipe (the write-end)and the consumer reads from the other end (the read-end). As a result, ordinarypipes are unidirectional, allowing only one-way communication * show annotation

^50weaqx5ahc

%%

{"created":"2023-05-11T17:34:10.679Z","updated":"2023-05-11T17:34:10.679Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":372509,"end":372623},{"type":"TextQuoteSelector","exact":"If two-waycommunication is required, two pipes must be used, with each pipe sendingdata in a different direction. ","prefix":"ing only one-way communication. ","suffix":"We next illustrate constructing "}]}]}

%% * If two-waycommunication is required, two pipes must be used, with each pipe sendingdata in a different direction. * show annotation

^ve6lqtcesk

%%

{"created":"2023-05-11T17:34:25.952Z","updated":"2023-05-11T17:34:25.952Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":373319,"end":373394},{"type":"TextQuoteSelector","exact":"An ordinary pipe cannot be accessed from outside the process that createdit","prefix":"read() and write() system calls.","suffix":". Typically, a parent process cr"}]}]}

%% * An ordinary pipe cannot be accessed from outside the process that createdit * show annotation

^goeoh1uldy

%%

{"created":"2023-05-11T17:35:48.873Z","updated":"2023-05-11T17:35:48.873Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":378358,"end":378419},{"type":"TextQuoteSelector","exact":"Named pipes provide a much more powerful communication tool. ","prefix":"he ordinarypipe ceases to exist.","suffix":"Com-munication can be bidirectio"}]}]}

%% * Named pipes provide a much more powerful communication tool. * show annotation

^7nxd69uvwo

%%

{"created":"2023-05-11T17:36:00.249Z","updated":"2023-05-11T17:36:00.249Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":380602,"end":380654},{"type":"TextQuoteSelector","exact":"Named pipes are referred to as FIFOs in UNIX systems","prefix":"s anonymous pipes—child process.","suffix":". Once created, theyappear as ty"}]}]}

%% * Named pipes are referred to as FIFOs in UNIX systems * show annotation

^nel57p8i7o

%%

{"created":"2023-05-11T17:36:09.344Z","updated":"2023-05-11T17:36:09.344Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":380927,"end":381162},{"type":"TextQuoteSelector","exact":"Although FIFOs allow bidirectional communication, onlyhalf-duplex transmission is permitted. If data must travel in both directions,two FIFOs are typically used. Additionally, the communicating processes mustreside on the same machine.","prefix":"ly deletedfrom the file system. ","suffix":" If intermachine communication i"}]}]}

%% * Although FIFOs allow bidirectional communication, onlyhalf-duplex transmission is permitted. If data must travel in both directions,two FIFOs are typically used. Additionally, the communicating processes mustreside on the same machine. * show annotation

^grunnbsfrk4

%%

{"created":"2023-05-11T18:54:56.066Z","updated":"2023-05-11T18:54:56.066Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":412067,"end":412343},{"type":"TextQuoteSelector","exact":"A thread is a basic unit of CPU utilization; it comprises a thread ID, a program counter, a register set, and a stack. It shares with other threads belongingto the same process its code section, data section, and other operating-systemresources, such as open files and signals","prefix":"n Windows and Linux.4.1 Overview","suffix":". A traditional (or heavyweight)"}]}]}

%% * A thread is a basic unit of CPU utilization; it comprises a thread ID, a program counter, a register set, and a stack. It shares with other threads belongingto the same process its code section, data section, and other operating-systemresources, such as open files and signals * show annotation

^0rtsr1k1dobr

%%

{"created":"2023-05-11T18:55:16.770Z","updated":"2023-05-11T18:55:16.770Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":413027,"end":413150},{"type":"TextQuoteSelector","exact":"A web browser might have one thread display images ortext while another thread retrieves data from the network, for example","prefix":"d processes.threads of control. ","suffix":". Aword processor may have a thr"}]}]}

%% * A web browser might have one thread display images ortext while another thread retrieves data from the network, for example * show annotation

^vwsf9t3b5qk

%%

{"created":"2023-05-11T18:55:51.048Z","updated":"2023-05-11T18:55:51.048Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":414525,"end":414802},{"type":"TextQuoteSelector","exact":"If the web-server process ismultithreaded, the server will create a separate thread that listens for clientrequests. When a request is made, rather than creating another process, theserver creates a new thread to service the request and resume listening foradditional requests.","prefix":"that contains multiple threads. ","suffix":" This is illustrated in Figure 4"}]}]}

%% * If the web-server process ismultithreaded, the server will create a separate thread that listens for clientrequests. When a request is made, rather than creating another process, theserver creates a new thread to service the request and resume listening foradditional requests. * show annotation

^8mekwcrd58t

%%

{"created":"2023-05-11T18:57:00.037Z","updated":"2023-05-11T18:57:00.037Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":415816,"end":415902},{"type":"TextQuoteSelector","exact":"The benefits of multithreaded programming can be broken down into fourmajor categories","prefix":"mory in thesystem.4.1.2 Benefits","suffix":":1. Responsiveness. Multithreadi"}]}]}

%% * The benefits of multithreaded programming can be broken down into fourmajor categories * show annotation

^untbojae3jc

%%

{"created":"2023-05-11T18:57:05.338Z","updated":"2023-05-11T18:57:05.338Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":415906,"end":416068},{"type":"TextQuoteSelector","exact":"Responsiveness. Multithreading an interactive application may allowa program to continue running even if part of it is blocked or isperforming a lengthy operation","prefix":"wn into fourmajor categories:1. ","suffix":", thereby increasing responsiven"}]}]}

%% * Responsiveness. Multithreading an interactive application may allowa program to continue running even if part of it is blocked or isperforming a lengthy operation * show annotation

^9n5e6028tvn

%%

{"created":"2023-05-11T18:57:09.296Z","updated":"2023-05-11T18:57:09.296Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":416531,"end":416643},{"type":"TextQuoteSelector","exact":"Resource sharing. Processes can only share resources through techniquessuch as shared memory and message passing","prefix":"mains responsive to the user.2. ","suffix":". Such techniques mustbe explici"}]}]}

%% * Resource sharing. Processes can only share resources through techniquessuch as shared memory and message passing * show annotation

^fd9q4d1x5ac

%%

{"created":"2023-05-11T18:57:15.712Z","updated":"2023-05-11T18:57:15.712Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":416953,"end":417096},{"type":"TextQuoteSelector","exact":"Economy. Allocating memory and resources for process creation is costly.Because threads share the resources of the process to which they belong","prefix":"ithin the same address space.3. ","suffix":",it is more economical to create"}]}]}

%% * Economy. Allocating memory and resources for process creation is costly.Because threads share the resources of the process to which they belong * show annotation

^siac4pdo85

%%

{"created":"2023-05-11T18:57:20.098Z","updated":"2023-05-11T18:57:20.098Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":417590,"end":417602},{"type":"TextQuoteSelector","exact":"Scalability.","prefix":"ng is about five timesslower.4. ","suffix":" The benefits of multithreading "}]}]}

%% * Scalability. * show annotation

^wqops4qvoab

%%

{"created":"2023-05-11T18:57:45.379Z","updated":"2023-05-11T18:57:45.379Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":496549,"end":496811},{"type":"TextQuoteSelector","exact":"A cooperating process is one that can affect or be affected by other processesexecuting in the system. Cooperating processes can either directly share alogical address space (that is, both code and data) or be allowed to share dataonly through files or messages.","prefix":"A P T E R ProcessSynchronization","suffix":" The former case is achieved thr"}]}]}

%% * A cooperating process is one that can affect or be affected by other processesexecuting in the system. Cooperating processes can either directly share alogical address space (that is, both code and data) or be allowed to share dataonly through files or messages. * show annotation

^dj5oup5rtnf

%%

{"created":"2023-05-11T18:58:01.900Z","updated":"2023-05-11T18:58:01.900Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":497747,"end":498008},{"type":"TextQuoteSelector","exact":"This means that one process may only partially complete executionbefore another process is scheduled. In fact, a process may be interrupted atany point in its instruction stream, and the processing core may be assignedto execute instructions of another process.","prefix":"to provide concurrentexecution. ","suffix":" Additionally, Section 4.2 intro"}]}]}

%% * This means that one process may only partially complete executionbefore another process is scheduled. In fact, a process may be interrupted atany point in its instruction stream, and the processing core may be assignedto execute instructions of another process. * show annotation

^wifi1cvbjn

%%

{"created":"2023-05-11T18:59:55.586Z","updated":"2023-05-11T18:59:55.586Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":501941,"end":502375},{"type":"TextQuoteSelector","exact":"A situation like this, whereseveral processes access and manipulate the same data concurrently and theoutcome of the execution depends on the particular order in which the accesstakes place, is called a race condition. To guard against the race conditionabove, we need to ensure that only one process at a time can be manipulatingthe variable counter. To make such a guarantee, we require that the processesbe synchronized in some way","prefix":" variable counter concurrently. ","suffix":".Situations such as the one just"}]}]}

%% * A situation like this, whereseveral processes access and manipulate the same data concurrently and theoutcome of the execution depends on the particular order in which the accesstakes place, is called a race condition. To guard against the race conditionabove, we need to ensure that only one process at a time can be manipulatingthe variable counter. To make such a guarantee, we require that the processesbe synchronized in some way * show annotation

^08iztguz59qh

%%

{"created":"2023-05-11T19:00:37.226Z","updated":"2023-05-11T19:00:37.226Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":503372,"end":503757},{"type":"TextQuoteSelector","exact":"Consider a system consisting of n processes{P0, P1, ..., Pn−1}. Each process has a segment of code, called a critical section,in which the process may be changing common variables, updating a table,writing a file, and so on. The important feature of the system is that, whenone process is executing in its critical section, no other process is allowed toexecute in its critical section","prefix":"alled critical-section problem. ","suffix":". That is, no two processes are "}]}]}

%% * Consider a system consisting of n processes{P0, P1, ..., Pn−1}. Each process has a segment of code, called a critical section,in which the process may be changing common variables, updating a table,writing a file, and so on. The important feature of the system is that, whenone process is executing in its critical section, no other process is allowed toexecute in its critical section * show annotation

^4tjmputk7y

%%

{"created":"2023-05-11T19:00:50.122Z","updated":"2023-05-11T19:00:50.122Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":503843,"end":504169},{"type":"TextQuoteSelector","exact":"The critical-section problem is to design aprotocol that the processes can use to cooperate. Each process must requestpermission to enter its critical section. The section of code implementing thisrequest is the entry section. The critical section may be followed by an exitsection. The remaining code is the remainder section","prefix":"ical sections at the same time. ","suffix":". The general structure ofa typi"}]}]}

%% * The critical-section problem is to design aprotocol that the processes can use to cooperate. Each process must requestpermission to enter its critical section. The section of code implementing thisrequest is the entry section. The critical section may be followed by an exitsection. The remaining code is the remainder section * show annotation

^lvjwlp17cab

%%

{"created":"2023-05-11T19:00:56.427Z","updated":"2023-05-11T19:00:56.427Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":504342,"end":504430},{"type":"TextQuoteSelector","exact":"A solution to the critical-section problem must satisfy the following threerequirements:","prefix":"hese important segments of code.","suffix":"1. Mutual exclusion. If process "}]}]}

%% * A solution to the critical-section problem must satisfy the following threerequirements: * show annotation

^jds9y50gdxk

%%

{"created":"2023-05-11T19:01:22.476Z","updated":"2023-05-11T19:01:22.476Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":504433,"end":504571},{"type":"TextQuoteSelector","exact":"Mutual exclusion. If process  Pi is executing in its critical section, then noother processes can be executing in their critical sections.","prefix":" following threerequirements:1. ","suffix":"2. Progress. If no process is ex"}]}]}

%% * Mutual exclusion. If process Pi is executing in its critical section, then noother processes can be executing in their critical sections. * show annotation

^vgd1rmcq61

%%

{"created":"2023-05-11T19:01:34.357Z","updated":"2023-05-11T19:01:34.357Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":504574,"end":505037},{"type":"TextQuoteSelector","exact":"Progress. If no process is executing in its critical section and someprocesses wish to enter their critical sections, then only those processesthat are not executing in their remainder sections can participate indeciding which will enter its critical section next, and this selection cannotbe postponed indefinitely.3. Bounded waiting. There exists a bound, or limit, on the number of timesthat other processes are allowed to enter their critical sections after a","prefix":"g in their critical sections.2. ","suffix":"5.3 Peterson’s Solution 207proce"}]}]}

%% * Progress. If no process is executing in its critical section and someprocesses wish to enter their critical sections, then only those processesthat are not executing in their remainder sections can participate indeciding which will enter its critical section next, and this selection cannotbe postponed indefinitely.3. Bounded waiting. There exists a bound, or limit, on the number of timesthat other processes are allowed to enter their critical sections after a * show annotation

^l9jxzdyr0t

%%

{"created":"2023-05-11T19:01:38.852Z","updated":"2023-05-11T19:01:38.852Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":505064,"end":505155},{"type":"TextQuoteSelector","exact":"process has made a request to enter its critical section and before thatrequest is granted.","prefix":"ter a5.3 Peterson’s Solution 207","suffix":"We assume that each process is e"}]}]}

%% * process has made a request to enter its critical section and before thatrequest is granted. * show annotation

^7ycium1ihl5

%%

{"created":"2023-05-11T19:02:08.631Z","updated":"2023-05-11T19:02:08.631Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":505506,"end":505845},{"type":"TextQuoteSelector","exact":"Consider as anexample a kernel data structure that maintains a list of all open files in thesystem. This list must be modified when a new file is opened or closed (addingthe file to the list or removing it from the list). If two processes were to open filessimultaneously, the separate updates to this list could result in a race condition","prefix":"veral possible race conditions. ","suffix":".Other kernel data structures th"}]}]}

%% * Consider as anexample a kernel data structure that maintains a list of all open files in thesystem. This list must be modified when a new file is opened or closed (addingthe file to the list or removing it from the list). If two processes were to open filessimultaneously, the separate updates to this list could result in a race condition * show annotation

^wqnvqp2xcp9

%%

{"created":"2023-05-11T19:02:22.985Z","updated":"2023-05-11T19:02:22.985Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":506128,"end":506429},{"type":"TextQuoteSelector","exact":"Two general approaches are used to handle critical sections in operatingsystems: preemptive kernels and nonpreemptive kernels. A preemptivekernel allows a process to be preempted while it is running in kernel mode. Anonpreemptive kernel does not allow a process running in kernel mode to bepreempted; ","prefix":" free from such race conditions.","suffix":"a kernel-mode process will run u"}]}]}

%% * Two general approaches are used to handle critical sections in operatingsystems: preemptive kernels and nonpreemptive kernels. A preemptivekernel allows a process to be preempted while it is running in kernel mode. Anonpreemptive kernel does not allow a process running in kernel mode to bepreempted; * show annotation

^ipg5nyyvx

%%

{"created":"2023-05-11T19:02:43.776Z","updated":"2023-05-11T19:02:43.776Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":507107,"end":507296},{"type":"TextQuoteSelector","exact":"A preemptive kernel may be more responsive, since there is less risk that akernel-mode process will run for an arbitrarily long period before relinquishingthe processor to waiting processes","prefix":"kernel over a nonpreemptiveone? ","suffix":". (Of course, this risk can also"}]}]}

%% * A preemptive kernel may be more responsive, since there is less risk that akernel-mode process will run for an arbitrarily long period before relinquishingthe processor to waiting processes * show annotation

^rwsl2iuhh2a

%%

{"created":"2023-05-11T19:02:50.077Z","updated":"2023-05-11T19:02:50.077Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":507401,"end":507475},{"type":"TextQuoteSelector","exact":"Furthermore, apreemptive kernel is more suitable for real-time programming","prefix":"t does not behave in this way.) ","suffix":", as it will allowa real-time pr"}]}]}

%% * Furthermore, apreemptive kernel is more suitable for real-time programming * show annotation

^qia63nxem3e

%%

{"created":"2023-05-11T19:03:17.987Z","updated":"2023-05-11T19:03:17.987Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":508505,"end":508672},{"type":"TextQuoteSelector","exact":"Peterson’s solution is restricted to two processes that alternate executionbetween their critical sections and remainder sections. The processes arenumbered P0 and P1.","prefix":"ocess Pi in Peterson’s solution.","suffix":" For convenience, when presentin"}]}]}

%% * Peterson’s solution is restricted to two processes that alternate executionbetween their critical sections and remainder sections. The processes arenumbered P0 and P1. * show annotation

^n0wokw733y

%%

{"created":"2023-05-11T19:06:37.200Z","text":"Peterson's Solution is a classic algorithm used to synchronise access to a shared resource in a concurrent programming setting, specifically in the context of two processes or threads. It provides a way to achieve mutual exclusion, ensuring that only one process can enter the critical section at a time. The algorithm is named after its creator, Gary L. Peterson.\n\nHere's a simplified explanation of Peterson's Solution:\n\n1. Shared Variables: The solution requires two shared variables: `turn` and an array of two boolean flags, `flag[2]`. Each flag represents the intention of a process to enter the critical section, and `turn` indicates whose turn it is to enter.\n\n2. Entry Protocol: Before a process enters the critical section, it sets its flag to indicate its intention to enter and assigns the turn to the other process. For example, if process P0 wants to enter, it sets `flag[0] = true` and `turn = 1` (indicating it's P1's turn).\n\n3. Checking for Conflicts: After setting its flag and turn, the process checks if the other process also wants to enter the critical section. If the other process's flag is true and it is their turn, a conflict occurs.\n\n4. Waiting or Proceeding: If there is a conflict, the process must wait until it is its turn again. It repeatedly checks the other process's turn until the conflict is resolved. Once the conflict is resolved, the process proceeds to enter the critical section.\n\n5. Critical Section: The process can now execute its critical section, accessing the shared resource without interference from the other process. It performs the required operations and completes its task.\n\n6. Exit Protocol: After exiting the critical section, the process sets its flag to false, indicating it no longer intends to enter. This allows the other process to have a chance to enter the critical section.\n\n7. Mutual Exclusion: By utilizing the flags, turn variable, and the entry and exit protocols, Peterson's Solution ensures that only one process can enter the critical section at a time. It achieves mutual exclusion by coordinating the access to the shared resource between the two processes.\n\nIt's important to note that Peterson's Solution assumes some properties of the underlying system, such as atomic read and write operations for shared variables. Additionally, it is specifically designed for two processes and may not be directly applicable in scenarios involving more than two processes.\n\nWhile Peterson's Solution was an important contribution to the field of concurrent programming, modern synchronization mechanisms, such as locks and semaphores, are generally preferred for achieving mutual exclusion in practical implementations due to their wider applicability and flexibility.","updated":"2023-05-11T19:06:37.200Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":507669,"end":507688},{"type":"TextQuoteSelector","exact":"Peterson’s Solution","prefix":"preemptionwithin the kernel.5.3 ","suffix":"Next, we illustrate a classic so"}]}]}

%% * Peterson’s Solution * show annotation Peterson’s Solution is a classic algorithm used to synchronise access to a shared resource in a concurrent programming setting, specifically in the context of two processes or threads. It provides a way to achieve mutual exclusion, ensuring that only one process can enter the critical section at a time. The algorithm is named after its creator, Gary L. Peterson.

Here’s a simplified explanation of Peterson’s Solution:

  1. Shared Variables: The solution requires two shared variables: turn and an array of two boolean flags, flag[2]. Each flag represents the intention of a process to enter the critical section, and turn indicates whose turn it is to enter.

  2. Entry Protocol: Before a process enters the critical section, it sets its flag to indicate its intention to enter and assigns the turn to the other process. For example, if process P0 wants to enter, it sets flag[0] = true and turn = 1 (indicating it’s P1’s turn).

  3. Checking for Conflicts: After setting its flag and turn, the process checks if the other process also wants to enter the critical section. If the other process’s flag is true and it is their turn, a conflict occurs.

  4. Waiting or Proceeding: If there is a conflict, the process must wait until it is its turn again. It repeatedly checks the other process’s turn until the conflict is resolved. Once the conflict is resolved, the process proceeds to enter the critical section.

  5. Critical Section: The process can now execute its critical section, accessing the shared resource without interference from the other process. It performs the required operations and completes its task.

  6. Exit Protocol: After exiting the critical section, the process sets its flag to false, indicating it no longer intends to enter. This allows the other process to have a chance to enter the critical section.

  7. Mutual Exclusion: By utilizing the flags, turn variable, and the entry and exit protocols, Peterson’s Solution ensures that only one process can enter the critical section at a time. It achieves mutual exclusion by coordinating the access to the shared resource between the two processes.

It’s important to note that Peterson’s Solution assumes some properties of the underlying system, such as atomic read and write operations for shared variables. Additionally, it is specifically designed for two processes and may not be directly applicable in scenarios involving more than two processes.

While Peterson’s Solution was an important contribution to the field of concurrent programming, modern synchronization mechanisms, such as locks and semaphores, are generally preferred for achieving mutual exclusion in practical implementations due to their wider applicability and flexibility. #chatgpt,#key terms ^lgfial1rn0a

%%

{"created":"2023-05-11T19:07:20.717Z","updated":"2023-05-11T19:07:20.717Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":518653,"end":518840},{"type":"TextQuoteSelector","exact":"operating-systems designers build software tools tosolve the critical-section problem. The simplest of these tools is the mutexlock. (In fact, the term mutex is short for mutual exclusion","prefix":"pplicationprogrammers. Instead, ","suffix":".) We use the mutex lock to prot"}]}]}

%% * operating-systems designers build software tools tosolve the critical-section problem. The simplest of these tools is the mutexlock. (In fact, the term mutex is short for mutual exclusion * show annotation

^5bhr27khr44

%%

{"created":"2023-05-11T19:07:26.007Z","updated":"2023-05-11T19:07:26.007Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":518902,"end":518926},{"type":"TextQuoteSelector","exact":"prevent race conditions.","prefix":"otect critical regions and thus ","suffix":" That is, aprocess must acquire "}]}]}

%% * prevent race conditions. * show annotation

^ggw8dczmp59

%%

{"created":"2023-05-11T19:07:39.982Z","updated":"2023-05-11T19:07:39.982Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":518936,"end":519143},{"type":"TextQuoteSelector","exact":"aprocess must acquire the lock before entering a critical section; it releases thelock when it exits the critical section. The acquire()function acquires the lock,and the release() function releases the lock","prefix":"event race conditions. That is, ","suffix":", as illustrated in Figure 5.8.A"}]}]}

%% * aprocess must acquire the lock before entering a critical section; it releases thelock when it exits the critical section. The acquire()function acquires the lock,and the release() function releases the lock * show annotation

^p4nv5ccyyl

%%

{"created":"2023-05-11T19:07:55.550Z","updated":"2023-05-11T19:07:55.550Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":519808,"end":519876},{"type":"TextQuoteSelector","exact":"Calls to either acquire() or release() must be performed atomically.","prefix":"ws:release() {available = true;}","suffix":"Thus, mutex locks are often impl"}]}]}

%% * Calls to either acquire() or release() must be performed atomically. * show annotation

^tim49rarih

%%

{"created":"2023-05-11T19:08:02.895Z","updated":"2023-05-11T19:08:02.895Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":520041,"end":520278},{"type":"TextQuoteSelector","exact":"The main disadvantage of the implementation given here is that it requiresbusy waiting. While a process is in its critical section, any other process thattries to enter its critical section must loop continuously in the call to acquire()","prefix":"of this techniqueas an exercise.","suffix":".In fact, this type of mutex loc"}]}]}

%% * The main disadvantage of the implementation given here is that it requiresbusy waiting. While a process is in its critical section, any other process thattries to enter its critical section must loop continuously in the call to acquire() * show annotation

^do2h2m88p27

%%

{"created":"2023-05-11T19:08:13.392Z","updated":"2023-05-11T19:08:13.392Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":520288,"end":520410},{"type":"TextQuoteSelector","exact":"this type of mutex lock is also called a spinlock because the process“spins”while waiting for the lock to become available","prefix":" the call to acquire().In fact, ","suffix":". (We see the same issuewith the"}]}]}

%% * this type of mutex lock is also called a spinlock because the process“spins”while waiting for the lock to become available * show annotation

^dc06f7zagb

%%

{"created":"2023-05-11T19:08:20.431Z","updated":"2023-05-11T19:08:20.431Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":520669,"end":520699},{"type":"TextQuoteSelector","exact":"Busy waiting wastes CPU cycles","prefix":" is shared among manyprocesses. ","suffix":" that some other process might b"}]}]}

%% * Busy waiting wastes CPU cycles * show annotation

^f608dn4c27k

%%

{"created":"2023-05-11T19:08:27.955Z","updated":"2023-05-11T19:08:27.955Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":520757,"end":520917},{"type":"TextQuoteSelector","exact":"Spinlocks do have an advantage, however, in that no context switch isrequired when a process must wait on a lock, and a context switch maytake considerable time","prefix":"ight beable to use productively.","suffix":". Thus, when locks are expected "}]}]}

%% * Spinlocks do have an advantage, however, in that no context switch isrequired when a process must wait on a lock, and a context switch maytake considerable time * show annotation

^cjfmk3t6whp

%%

{"created":"2023-05-11T19:08:51.997Z","updated":"2023-05-11T19:08:51.997Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":521705,"end":521850},{"type":"TextQuoteSelector","exact":"A semaphore S is an integer variable that, apart from initialization, isaccessed only through two standard atomic operations: wait() and signal()","prefix":"to synchronize their activities.","suffix":".The wait() operation was origin"}]}]}

%% * A semaphore S is an integer variable that, apart from initialization, isaccessed only through two standard atomic operations: wait() and signal() * show annotation

^5q9v84315p

%%

{"created":"2023-05-11T19:09:28.146Z","updated":"2023-05-11T19:09:28.146Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":522684,"end":522949},{"type":"TextQuoteSelector","exact":"Operating systems often distinguish between counting and binary semaphores.The value of a counting semaphore can range over an unrestricted domain.The value of a binary semaphore can range only between 0 and 1. Thus, binarysemaphores behave similarly to mutex locks","prefix":"an be used.5.6.1 Semaphore Usage","suffix":". In fact, on systems that do no"}]}]}

%% * Operating systems often distinguish between counting and binary semaphores.The value of a counting semaphore can range over an unrestricted domain.The value of a binary semaphore can range only between 0 and 1. Thus, binarysemaphores behave similarly to mutex locks * show annotation

^38hfmqp2rs

%%

{"created":"2023-05-11T19:11:23.887Z","text":"Semaphores are a synchronization mechanism used in concurrent programming to control access to shared resources and coordinate the execution of multiple processes or threads. They are often employed to prevent race conditions and ensure mutual exclusion.\n\nIn simple terms, a semaphore can be thought of as a counter that keeps track of the number of available resources or the state of a particular condition. It can be accessed and modified by different processes or threads concurrently. The two fundamental operations associated with semaphores are \"wait\" and \"signal\" (also known as \"P\" and \"V\" operations, respectively).\n\nHere's a simplified explanation of semaphores and their operations:\n\n1. Semaphore Initialization: A semaphore is typically initialized with an initial value that represents the number of available resources or the desired initial state of the condition it represents. It can be a non-negative integer.\n\n2. Wait (P) Operation: When a process/thread wants to access a shared resource, it needs to perform a \"wait\" operation on the semaphore associated with that resource. If the semaphore value is greater than 0, indicating that there are available resources, the process/thread can proceed and decrement the semaphore value by 1. If the semaphore value is 0, indicating that all resources are currently in use, the process/thread is blocked and put into a waiting state until a resource becomes available.\n\n3. Signal (V) Operation: When a process/thread finishes using a shared resource, it performs a \"signal\" operation on the semaphore, also known as a \"release\" operation. This operation increments the semaphore value by 1, indicating that a resource has been released and is now available. If there are any other processes/threads waiting on the semaphore, one of them is unblocked and allowed to proceed.\n\nBy using semaphores, processes/threads can coordinate their access to shared resources and ensure exclusive access when necessary. Semaphores provide a way to impose synchronization points and enforce ordering in the execution of concurrent processes/threads.\n\nSemaphores can also be used for other synchronization purposes beyond mutual exclusion, such as signaling events, implementing producer-consumer patterns, or managing bounded resources. Different variations of semaphores exist, including binary semaphores (with values limited to 0 and 1) and counting semaphores (with values greater than 0).\n\nIt's worth noting that while semaphores can be a powerful tool for synchronization, their usage requires careful design to avoid potential pitfalls like deadlock or starvation. Modern programming languages and operating systems provide built-in semaphore implementations or higher-level synchronization constructs that encapsulate semaphore functionality, making it easier to handle synchronization challenges effectively.","updated":"2023-05-11T19:11:23.887Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":521379,"end":521389},{"type":"TextQuoteSelector","exact":"Semaphores","prefix":"ems, as well as in Pthreads.5.6 ","suffix":"Mutex locks, as we mentioned ear"}]}]}

%% * Semaphores * show annotation Semaphores are a synchronization mechanism used in concurrent programming to control access to shared resources and coordinate the execution of multiple processes or threads. They are often employed to prevent race conditions and ensure mutual exclusion.

In simple terms, a semaphore can be thought of as a counter that keeps track of the number of available resources or the state of a particular condition. It can be accessed and modified by different processes or threads concurrently. The two fundamental operations associated with semaphores are “wait” and “signal” (also known as “P” and “V” operations, respectively).

Here’s a simplified explanation of semaphores and their operations:

  1. Semaphore Initialization: A semaphore is typically initialized with an initial value that represents the number of available resources or the desired initial state of the condition it represents. It can be a non-negative integer.

  2. Wait (P) Operation: When a process/thread wants to access a shared resource, it needs to perform a “wait” operation on the semaphore associated with that resource. If the semaphore value is greater than 0, indicating that there are available resources, the process/thread can proceed and decrement the semaphore value by 1. If the semaphore value is 0, indicating that all resources are currently in use, the process/thread is blocked and put into a waiting state until a resource becomes available.

  3. Signal (V) Operation: When a process/thread finishes using a shared resource, it performs a “signal” operation on the semaphore, also known as a “release” operation. This operation increments the semaphore value by 1, indicating that a resource has been released and is now available. If there are any other processes/threads waiting on the semaphore, one of them is unblocked and allowed to proceed.

By using semaphores, processes/threads can coordinate their access to shared resources and ensure exclusive access when necessary. Semaphores provide a way to impose synchronization points and enforce ordering in the execution of concurrent processes/threads.

Semaphores can also be used for other synchronization purposes beyond mutual exclusion, such as signaling events, implementing producer-consumer patterns, or managing bounded resources. Different variations of semaphores exist, including binary semaphores (with values limited to 0 and 1) and counting semaphores (with values greater than 0).

It’s worth noting that while semaphores can be a powerful tool for synchronization, their usage requires careful design to avoid potential pitfalls like deadlock or starvation. Modern programming languages and operating systems provide built-in semaphore implementations or higher-level synchronization constructs that encapsulate semaphore functionality, making it easier to handle synchronization challenges effectively. #chatgpt ^mm9b5j5gm0s

%%

{"created":"2023-05-11T19:13:45.542Z","text":"Summary:\n\nBounded-Buffer Problem:\n- Producer and consumer processes share data structures: `n`, `mutex`, `empty`, `full`.\n- `n` represents the number of buffers in the pool.\n- `mutex` provides mutual exclusion for buffer pool accesses.\n- `empty` counts the number of empty buffers.\n- `full` counts the number of full buffers.\n- Producer code waits for an empty buffer, acquires mutex, adds an item to the buffer, releases mutex, and signals that a buffer is full.\n- Consumer code waits for a full buffer, acquires mutex, consumes an item from the buffer, releases mutex, and signals that a buffer is empty.\n\nReaders-Writers Problem:\n- Shared database accessed by multiple processes: readers and writers.\n- Writers need exclusive access to the database to write, while readers can read concurrently.\n- First readers-writers problem allows readers to proceed if no writers are waiting.\n- Solution includes semaphores `rw_mutex`, `mutex`, and `read_count`.\n- `rw_mutex` provides mutual exclusion for writers, and `mutex` ensures mutual exclusion for `read_count`.\n- Readers increment `read_count` and wait on `rw_mutex` if they are the first reader.\n- Readers release `rw_mutex` when exiting.\n- Writers wait on `rw_mutex`, perform writing, and release `rw_mutex`.\n\nDining-Philosophers Problem:\n- Five philosophers sharing a circular table with chopsticks.\n- Philosophers alternate between thinking and eating.\n- Philosophers try to pick up two chopsticks to eat.\n- Solution includes semaphores `chopstick[5]` representing the chopsticks.\n- Each philosopher waits for the left and right chopsticks, eats, and then releases the chopsticks.\n- A deadlock can occur if all philosophers pick up their left chopsticks simultaneously.\n- Remedies include limiting the number of philosophers at the table, requiring both chopsticks to be available before picking them up, or using an asymmetric solution.\n\nIt's important to note that the provided summaries are based on the given text, and some details may be omitted or simplified.","updated":"2023-05-11T19:13:45.542Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":534702,"end":534737},{"type":"TextQuoteSelector","exact":"Classic Problems of Synchronization","prefix":"ure of the producer process.5.7 ","suffix":"In this section, we present a nu"}]}]}

%% * Classic Problems of Synchronization * show annotation Summary:

Bounded-Buffer Problem:

  • Producer and consumer processes share data structures: n, mutex, empty, full.
  • n represents the number of buffers in the pool.
  • mutex provides mutual exclusion for buffer pool accesses.
  • empty counts the number of empty buffers.
  • full counts the number of full buffers.
  • Producer code waits for an empty buffer, acquires mutex, adds an item to the buffer, releases mutex, and signals that a buffer is full.
  • Consumer code waits for a full buffer, acquires mutex, consumes an item from the buffer, releases mutex, and signals that a buffer is empty.

Readers-Writers Problem:

  • Shared database accessed by multiple processes: readers and writers.
  • Writers need exclusive access to the database to write, while readers can read concurrently.
  • First readers-writers problem allows readers to proceed if no writers are waiting.
  • Solution includes semaphores rw_mutex, mutex, and read_count.
  • rw_mutex provides mutual exclusion for writers, and mutex ensures mutual exclusion for read_count.
  • Readers increment read_count and wait on rw_mutex if they are the first reader.
  • Readers release rw_mutex when exiting.
  • Writers wait on rw_mutex, perform writing, and release rw_mutex.

Dining-Philosophers Problem:

  • Five philosophers sharing a circular table with chopsticks.
  • Philosophers alternate between thinking and eating.
  • Philosophers try to pick up two chopsticks to eat.
  • Solution includes semaphores chopstick[5] representing the chopsticks.
  • Each philosopher waits for the left and right chopsticks, eats, and then releases the chopsticks.
  • A deadlock can occur if all philosophers pick up their left chopsticks simultaneously.
  • Remedies include limiting the number of philosophers at the table, requiring both chopsticks to be available before picking them up, or using an asymmetric solution.

It’s important to note that the provided summaries are based on the given text, and some details may be omitted or simplified. #chatgpt,#key terms ^4wvvka4wcxo

%%

{"created":"2023-05-11T19:15:12.217Z","updated":"2023-05-11T19:15:12.217Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":537227,"end":537453},{"type":"TextQuoteSelector","exact":"To ensure that these difficulties do not arise, we require that the writershave exclusive access to the shared database while writing to the database. Thissynchronization problem is referred to as the readers – writers problem","prefix":" simultaneously,chaos may ensue.","suffix":". Since itwas originally stated,"}]}]}

%% * To ensure that these difficulties do not arise, we require that the writershave exclusive access to the shared database while writing to the database. Thissynchronization problem is referred to as the readers – writers problem * show annotation

^dv8a88lv4sh

%%

{"created":"2023-05-11T19:15:30.794Z","updated":"2023-05-11T19:15:30.794Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":537666,"end":537914},{"type":"TextQuoteSelector","exact":"the first readers – writers problem,requires that no reader be kept waiting unless a writer has already obtainedpermission to use the shared object. In other words, no reader should wait forother readers to finish simply because a writer is waiting","prefix":"he simplest one, referred to as ","suffix":". The second readers– writers pr"}]}]}

%% * the first readers – writers problem,requires that no reader be kept waiting unless a writer has already obtainedpermission to use the shared object. In other words, no reader should wait forother readers to finish simply because a writer is waiting * show annotation

^syqydblbcg

%%

{"created":"2023-05-11T19:16:46.431Z","updated":"2023-05-11T19:16:46.431Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":540536,"end":540602},{"type":"TextQuoteSelector","exact":"Reader – writer locks are most useful in the following situations:","prefix":" access is required for writers.","suffix":"do {wait(mutex);read count++;if "}]}]}

%% * Reader – writer locks are most useful in the following situations: * show annotation

^hkvhustp0z4

%%

{"created":"2023-05-11T19:16:52.573Z","updated":"2023-05-11T19:16:52.573Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":540950,"end":541130},{"type":"TextQuoteSelector","exact":"In applications where it is easy to identify which processes only read shareddata and which processes only write shared data.• In applications that have more readers than writers. ","prefix":"on of the dining philosophers.• ","suffix":"This is because reader –writer l"}]}]}

%% * In applications where it is easy to identify which processes only read shareddata and which processes only write shared data.• In applications that have more readers than writers. * show annotation

^kvaf7jxfoeo

%%

{"created":"2023-05-11T19:17:24.559Z","updated":"2023-05-11T19:17:24.559Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":542282,"end":542675},{"type":"TextQuoteSelector","exact":"The dining-philosophers problem is considered a classic synchronizationproblem neither because of its practical importance nor because computerscientists dislike philosophers but because it is an example of a large classof concurrency-control problems. It is a simple representation of the needto allocate several resources among several processes in a deadlock-free andstarvation-free manner.","prefix":"ticks and starts thinking again.","suffix":"One simple solution is to repres"}]}]}

%% * The dining-philosophers problem is considered a classic synchronizationproblem neither because of its practical importance nor because computerscientists dislike philosophers but because it is an example of a large classof concurrency-control problems. It is a simple representation of the needto allocate several resources among several processes in a deadlock-free andstarvation-free manner. * show annotation

^jozzueg6wp

%%

{"created":"2023-05-11T19:17:54.192Z","updated":"2023-05-11T19:17:54.192Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":544593,"end":544881},{"type":"TextQuoteSelector","exact":"Although semaphores provide a convenient and effective mechanism forprocess synchronization, using them incorrectly can result in timing errorsthat are difficult to detect, since these errors happen only if particular executionsequences take place and these sequences do not always occur.","prefix":"ility of starvation.5.8 Monitors","suffix":"We have seen an example of such "}]}]}

%% * Although semaphores provide a convenient and effective mechanism forprocess synchronization, using them incorrectly can result in timing errorsthat are difficult to detect, since these errors happen only if particular executionsequences take place and these sequences do not always occur. * show annotation

^obmjbdmdldp

%%

{"created":"2023-05-11T19:18:40.064Z","updated":"2023-05-11T19:18:40.064Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":547057,"end":547242},{"type":"TextQuoteSelector","exact":"To deal with such errors, researchers have developed high-level languageconstructs. In this section, we describe one fundamental high-level synchro-nization construct — the monitor type","prefix":" modelsdiscussed in Section 5.7.","suffix":".5.8 Monitors 225monitor monitor"}]}]}

%% * To deal with such errors, researchers have developed high-level languageconstructs. In this section, we describe one fundamental high-level synchro-nization construct — the monitor type * show annotation

^gyb8al0beuh

%%

{"created":"2023-05-11T19:18:55.417Z","updated":"2023-05-11T19:18:55.417Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":547497,"end":547795},{"type":"TextQuoteSelector","exact":"An abstract data type — or  ADT — encapsulates data with a set of functionsto operate on that data that are independent of any specific implementationof the ADT. A monitor type is an ADT that includes a set of programmer-defined operations that are provided with mutual exclusion within the monitor","prefix":"of a monitor.5.8.1 Monitor Usage","suffix":".The monitor type also declares "}]}]}

%% * An abstract data type — or ADT — encapsulates data with a set of functionsto operate on that data that are independent of any specific implementationof the ADT. A monitor type is an ADT that includes a set of programmer-defined operations that are provided with mutual exclusion within the monitor * show annotation

^esfclzgiyv

%%

{"created":"2023-05-11T19:19:23.254Z","updated":"2023-05-11T19:19:23.254Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":548327,"end":548417},{"type":"TextQuoteSelector","exact":"The monitor construct ensures that only one process at a time is activewithin the monitor.","prefix":"ssed by only the localfunctions.","suffix":" Consequently, the programmer do"}]}]}

%% * The monitor construct ensures that only one process at a time is activewithin the monitor. * show annotation

^mm0it1jg5l

%%

{"created":"2023-05-11T19:19:38.423Z","updated":"2023-05-11T19:19:38.423Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":548526,"end":548779},{"type":"TextQuoteSelector","exact":"However, the monitorconstruct, as defined so far, is not sufficiently powerful for modeling somesynchronization schemes. For this purpose, we need to define additional syn-chronization mechanisms. These mechanisms are provided by the conditionconstruct.","prefix":"raint explicitly (Figure 5.16). ","suffix":" A programmer who needs to write"}]}]}

%% * However, the monitorconstruct, as defined so far, is not sufficiently powerful for modeling somesynchronization schemes. For this purpose, we need to define additional syn-chronization mechanisms. These mechanisms are provided by the conditionconstruct. * show annotation

^lwkyr7i9ocm

%%

{"created":"2023-05-11T19:20:01.977Z","updated":"2023-05-11T19:20:01.977Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":550035,"end":550051},{"type":"TextQuoteSelector","exact":"Signal and wait.","prefix":"ion. Two possibilities exist:1. ","suffix":" P either waits until Q leaves t"}]}]}

%% * Signal and wait. * show annotation

^18qjvswzpiz

%%

{"created":"2023-05-11T19:20:04.185Z","updated":"2023-05-11T19:20:04.185Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":550127,"end":550146},{"type":"TextQuoteSelector","exact":"Signal and continue","prefix":"r waits foranother condition.2. ","suffix":". Q either waits until P leaves "}]}]}

%% * Signal and continue * show annotation

^seit4d0dfrq

%%

{"created":"2023-05-11T20:38:00.930Z","text":"Monitors are a high-level synchronization construct that provides a structured approach to process synchronization. They were introduced by C.A.R. Hoare and are commonly used in concurrent programming languages to ensure mutually exclusive access to shared resources.\n\nHere are the key points about monitors:\n\n- **Encapsulation**: A monitor encapsulates shared data and the procedures (also known as methods or functions) that operate on that data. It combines the data and related procedures into a single unit, ensuring that access to the shared data is controlled.\n\n- **Mutual Exclusion**: Monitors ensure mutual exclusion by allowing only one thread or process to be active within the monitor at a given time. When a thread enters a monitor, it gains exclusive access to the shared data and can execute the monitor's procedures without interference from other threads.\n\n- **Synchronization**: Monitors provide synchronization mechanisms, typically in the form of condition variables. Condition variables allow threads to wait for certain conditions to be satisfied before proceeding. Threads can signal or broadcast on condition variables to notify waiting threads about changes in the shared data.\n\n- **Serialization of Access**: Monitors enforce the serialization of access to shared resources. When a thread enters a monitor, it gains sole access to the shared data and is guaranteed exclusive access until it exits the monitor. This ensures that only one thread is modifying the shared data at any given time, preventing race conditions and maintaining data integrity.\n\n- **Implicit Locking**: Monitors provide implicit locking of the shared data. When a thread enters a monitor, it automatically acquires the lock associated with the monitor, allowing it exclusive access to the shared data. The lock is released when the thread exits the monitor, allowing other threads to enter.\n\n- **Exception Handling**: Monitors often provide built-in exception handling mechanisms. If an exception occurs within a monitor, the monitor automatically releases the lock and exits, ensuring that other threads can continue executing.\n\nOverall, monitors provide a higher level of abstraction compared to lower-level synchronization primitives like semaphores or mutexes. They simplify the process of coordinating access to shared resources and help prevent common concurrency issues such as race conditions and deadlocks.\n\nIt's worth noting that the specific implementation and features of monitors may vary depending on the programming language or framework being used.","updated":"2023-05-11T20:38:00.930Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":544585,"end":544593},{"type":"TextQuoteSelector","exact":"Monitors","prefix":"e possibility of starvation.5.8 ","suffix":"Although semaphores provide a co"}]}]}

%% * Monitors * show annotation Monitors are a high-level synchronization construct that provides a structured approach to process synchronization. They were introduced by C.A.R. Hoare and are commonly used in concurrent programming languages to ensure mutually exclusive access to shared resources.

Here are the key points about monitors:

  • Encapsulation: A monitor encapsulates shared data and the procedures (also known as methods or functions) that operate on that data. It combines the data and related procedures into a single unit, ensuring that access to the shared data is controlled.

  • Mutual Exclusion: Monitors ensure mutual exclusion by allowing only one thread or process to be active within the monitor at a given time. When a thread enters a monitor, it gains exclusive access to the shared data and can execute the monitor’s procedures without interference from other threads.

  • Synchronization: Monitors provide synchronization mechanisms, typically in the form of condition variables. Condition variables allow threads to wait for certain conditions to be satisfied before proceeding. Threads can signal or broadcast on condition variables to notify waiting threads about changes in the shared data.

  • Serialization of Access: Monitors enforce the serialization of access to shared resources. When a thread enters a monitor, it gains sole access to the shared data and is guaranteed exclusive access until it exits the monitor. This ensures that only one thread is modifying the shared data at any given time, preventing race conditions and maintaining data integrity.

  • Implicit Locking: Monitors provide implicit locking of the shared data. When a thread enters a monitor, it automatically acquires the lock associated with the monitor, allowing it exclusive access to the shared data. The lock is released when the thread exits the monitor, allowing other threads to enter.

  • Exception Handling: Monitors often provide built-in exception handling mechanisms. If an exception occurs within a monitor, the monitor automatically releases the lock and exits, ensuring that other threads can continue executing.

Overall, monitors provide a higher level of abstraction compared to lower-level synchronization primitives like semaphores or mutexes. They simplify the process of coordinating access to shared resources and help prevent common concurrency issues such as race conditions and deadlocks.

It’s worth noting that the specific implementation and features of monitors may vary depending on the programming language or framework being used. #chatgpt,#key terms ^fkz24tj9rl8

%%

{"created":"2023-05-11T20:43:14.923Z","updated":"2023-05-11T20:43:14.923Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1570725,"end":1570829},{"type":"TextQuoteSelector","exact":"We say that a system is secure if its resources are used and accessedas intended under all circumstances","prefix":"f and access to theseresources. ","suffix":". Unfortunately, total security "}]}]}

%% * We say that a system is secure if its resources are used and accessedas intended under all circumstances * show annotation

^264e5p443su

%%

{"created":"2023-05-11T20:43:35.155Z","updated":"2023-05-11T20:43:35.155Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1571395,"end":1571629},{"type":"TextQuoteSelector","exact":"we use the terms intruder and cracker for those attemptingto breach security. In addition, a threat is the potential for a security violation,such as the discovery of a vulnerability, whereas an attack is the attempt tobreak security.","prefix":"in our dis-cussion of security, ","suffix":"• Breach of confidentiality. Thi"}]}]}

%% * we use the terms intruder and cracker for those attemptingto breach security. In addition, a threat is the potential for a security violation,such as the discovery of a vulnerability, whereas an attack is the attempt tobreak security. * show annotation

^sh1vxofkxra

%%

{"created":"2023-05-11T20:43:40.514Z","updated":"2023-05-11T20:43:40.514Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1571631,"end":1571744},{"type":"TextQuoteSelector","exact":"Breach of confidentiality. This type of violation involves unauthorizedreading of data (or theft of information).","prefix":" the attempt tobreak security.• ","suffix":" Typically, a breach of confiden"}]}]}

%% * Breach of confidentiality. This type of violation involves unauthorizedreading of data (or theft of information). * show annotation

^7iny864p4oa

%%

{"created":"2023-05-11T20:43:45.252Z","updated":"2023-05-11T20:43:45.252Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1571989,"end":1572067},{"type":"TextQuoteSelector","exact":"Breach of integrity. This violation involves unauthorized modificationof data.","prefix":"tly in money for the intruder.• ","suffix":" Such attacks can, for example, "}]}]}

%% * Breach of integrity. This violation involves unauthorized modificationof data. * show annotation

^kd4zjbp42i

%%

{"created":"2023-05-11T20:43:48.788Z","updated":"2023-05-11T20:43:48.788Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1572225,"end":1572305},{"type":"TextQuoteSelector","exact":"Breach of availability. This violation involves unauthorized destruction ofdata.","prefix":"portantcommercial application.• ","suffix":" Some crackers would rather wrea"}]}]}

%% * Breach of availability. This violation involves unauthorized destruction ofdata. * show annotation

^4byepm0jsuo

%%

{"created":"2023-05-11T20:43:54.232Z","updated":"2023-05-11T20:43:54.232Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1572474,"end":1572546},{"type":"TextQuoteSelector","exact":"Theft of service. This violation involves unauthorized use of resources.","prefix":"fthis type of security breach.• ","suffix":"For example, an intruder (or int"}]}]}

%% * Theft of service. This violation involves unauthorized use of resources. * show annotation

^ofb1c2j2a1

%%

{"created":"2023-05-11T20:43:59.842Z","updated":"2023-05-11T20:43:59.842Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1572655,"end":1572760},{"type":"TextQuoteSelector","exact":"Denial of service. This violation involves preventing legitimate use ofthe system. Denial-of-service (DOS","prefix":"em that acts as a file server.• ","suffix":") attacks are sometimes accident"}]}]}

%% * Denial of service. This violation involves preventing legitimate use ofthe system. Denial-of-service (DOS * show annotation

^htxba4hoyog

%%

{"created":"2023-05-11T20:44:09.456Z","updated":"2023-05-11T20:44:09.456Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1573016,"end":1573202},{"type":"TextQuoteSelector","exact":"The most common is masquerading, in which one participant ina communication pretends to be someone else (another host or anotherperson). By masquerading, attackers breach authentication,","prefix":"eir attempts to breachsecurity. ","suffix":" the correctnessof identificatio"}]}]}

%% * The most common is masquerading, in which one participant ina communication pretends to be someone else (another host or anotherperson). By masquerading, attackers breach authentication, * show annotation

^ihlt9qj9q1q

%%

{"created":"2023-05-11T20:44:15.241Z","updated":"2023-05-11T20:44:15.241Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1573459,"end":1573549},{"type":"TextQuoteSelector","exact":"A replay attack consists of the malicious or fraudulent repeat of avalid data transmission","prefix":"lay a captured exchangeof data. ","suffix":". Sometimes the replay comprises"}]}]}

%% * A replay attack consists of the malicious or fraudulent repeat of avalid data transmission * show annotation

^zl5y0ce0d9

%%

{"created":"2023-05-11T20:44:28.042Z","updated":"2023-05-11T20:44:28.042Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1574147,"end":1574293},{"type":"TextQuoteSelector","exact":"man-in-the-middle attack, in which an attacker sits in the dataflow of a communication, masquerading as the sender to the receiver, andvice versa.","prefix":"et another kind ofattack is the ","suffix":" In a network communication, a m"}]}]}

%% * man-in-the-middle attack, in which an attacker sits in the dataflow of a communication, masquerading as the sender to the receiver, andvice versa. * show annotation

^qiz8gzdpezs

%%

{"created":"2023-05-11T20:44:30.618Z","updated":"2023-05-11T20:44:30.618Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1574369,"end":1574443},{"type":"TextQuoteSelector","exact":"session hijacking, in which an active communication session isintercepted.","prefix":"ddle attack may bepreceded by a ","suffix":" Several attack methods are depi"}]}]}

%% * session hijacking, in which an active communication session isintercepted. * show annotation

^d9582xo5hyh

%%

{"created":"2023-05-11T20:44:38.290Z","updated":"2023-05-11T20:44:38.290Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1574844,"end":1574911},{"type":"TextQuoteSelector","exact":"To protect a system, we must take security measures at four levels:","prefix":"at countermeasures can be taken.","suffix":"1. Physical. The site or sites c"}]}]}

%% * To protect a system, we must take security measures at four levels: * show annotation

^xooe7royf6

%%

{"created":"2023-05-11T20:44:39.782Z","updated":"2023-05-11T20:44:39.782Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1574914,"end":1574922},{"type":"TextQuoteSelector","exact":"Physical","prefix":"rity measures at four levels:1. ","suffix":". The site or sites containing t"}]}]}

%% * Physical * show annotation

^0pylhm55xies

%%

{"created":"2023-05-11T20:44:43.288Z","updated":"2023-05-11T20:44:43.288Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1575181,"end":1575186},{"type":"TextQuoteSelector","exact":"Human","prefix":"cured.660 Chapter 15 Security2. ","suffix":". Authorization must be done car"}]}]}

%% * Human * show annotation

^23nuryhw7op

%%

{"created":"2023-05-11T20:44:46.357Z","updated":"2023-05-11T20:44:46.357Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1575977,"end":1575993},{"type":"TextQuoteSelector","exact":"Operating system","prefix":"taining to operating systems.3. ","suffix":". The system must protect itself"}]}]}

%% * Operating system * show annotation

^h6k5ut7wspc

%%

{"created":"2023-05-11T20:44:47.918Z","updated":"2023-05-11T20:44:47.918Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1576315,"end":1576322},{"type":"TextQuoteSelector","exact":"Network","prefix":"e breaches is almost endless.4. ","suffix":". Much computer data in modern s"}]}]}

%% * Network * show annotation

^3oj27iktm4e

%%

{"created":"2023-05-11T20:45:47.316Z","updated":"2023-05-11T20:45:47.316Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1579008,"end":1579221},{"type":"TextQuoteSelector","exact":"while it is useful to log into a system without authorization, it is quite a lot more useful to leave behinda back-door daemon that provides information or allows easy access even ifthe original exploit is blocked","prefix":" a program threat. For example, ","suffix":". In this section, we describe c"}]}]}

%% * while it is useful to log into a system without authorization, it is quite a lot more useful to leave behinda back-door daemon that provides information or allows easy access even ifthe original exploit is blocked * show annotation

^04o36o8sivx

%%

{"created":"2023-05-11T20:46:15.790Z","updated":"2023-05-11T20:46:15.790Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1579917,"end":1579985},{"type":"TextQuoteSelector","exact":"A code segment that misuses its environment is called a Trojan horse","prefix":" the creator of the text editor.","suffix":". Long search paths, such as are"}]}]}

%% * A code segment that misuses its environment is called a Trojan horse * show annotation

^xqdw0m2h1f

%%

{"created":"2023-05-11T20:46:54.349Z","updated":"2023-05-11T20:46:54.349Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1580888,"end":1581257},{"type":"TextQuoteSelector","exact":"A variation of the Trojan horse is a program that emulates a login program.An unsuspecting user starts to log in at a terminal and notices that he hasapparently mistyped his password. He tries again and is successful. Whathas happened is that his authentication key and password have been stolenby the login emulator, which was left running on the terminal by the thief","prefix":"the user ’s files, for instance.","suffix":".The emulator stored away the pa"}]}]}

%% * A variation of the Trojan horse is a program that emulates a login program.An unsuspecting user starts to log in at a terminal and notices that he hasapparently mistyped his password. He tries again and is successful. Whathas happened is that his authentication key and password have been stolenby the login emulator, which was left running on the terminal by the thief * show annotation

^n9i2ux3bcuj

%%

{"created":"2023-05-11T20:47:33.793Z","updated":"2023-05-11T20:47:33.793Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1581717,"end":1581792},{"type":"TextQuoteSelector","exact":"Spyware sometimesaccompanies a program that the user has chosen to install.","prefix":"on the Trojan horse is spyware. ","suffix":" Most frequently, itcomes along "}]}]}

%% * Spyware sometimesaccompanies a program that the user has chosen to install. * show annotation

^1ib28dijhdh

%%

{"created":"2023-05-11T20:47:43.925Z","updated":"2023-05-11T20:47:43.925Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1581915,"end":1582126},{"type":"TextQuoteSelector","exact":"The goal of spyware is to download ads to displayon the user ’s system, create pop-up browser windows when certain sites arevisited, or capture information from the user ’s system and return it to a centralsite.","prefix":"cludedwith commercial software. ","suffix":" This latter practice is an exam"}]}]}

%% * The goal of spyware is to download ads to displayon the user ’s system, create pop-up browser windows when certain sites arevisited, or capture information from the user ’s system and return it to a centralsite. * show annotation

^fu96xl5yq4q

%%

{"created":"2023-05-11T20:47:53.989Z","updated":"2023-05-11T20:47:53.989Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1582203,"end":1582392},{"type":"TextQuoteSelector","exact":"covert channels, in which surreptitious communication occurs. For example,the installation of an innocuous-seeming program on a Windows system couldresult in the loading of a spyware daemon","prefix":"ral category of attacks known as","suffix":". The spyware could contact a ce"}]}]}

%% * covert channels, in which surreptitious communication occurs. For example,the installation of an innocuous-seeming program on a Windows system couldresult in the loading of a spyware daemon * show annotation

^0nsb2g999d8

%%

{"created":"2023-05-11T20:48:40.054Z","updated":"2023-05-11T20:48:40.054Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1583760,"end":1584062},{"type":"TextQuoteSelector","exact":"The designer of a program or system might leave a hole in the software that onlyshe is capable of using. This type of security breach (or trap door) was shown inthe movie War Games. For instance, the code might check for a specific user ID orpassword, and it might circumvent normal security procedures","prefix":"ed to implement.15.2.2 Trap Door","suffix":". Programmershave been arrested "}]}]}

%% * The designer of a program or system might leave a hole in the software that onlyshe is capable of using. This type of security breach (or trap door) was shown inthe movie War Games. For instance, the code might check for a specific user ID orpassword, and it might circumvent normal security procedures * show annotation

^ij5nzvk0vv

%%

{"created":"2023-05-11T20:48:49.753Z","updated":"2023-05-11T20:48:49.753Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1584706,"end":1584835},{"type":"TextQuoteSelector","exact":"Trap doors pose a difficult problem because, to detect them, we have toanalyze all the source code for all components of a system","prefix":"r would contain the information.","suffix":". Given that softwaresystems may"}]}]}

%% * Trap doors pose a difficult problem because, to detect them, we have toanalyze all the source code for all components of a system * show annotation

^j2zaxcsirq

%%

{"created":"2023-05-11T20:49:06.418Z","updated":"2023-05-11T20:49:06.418Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1585289,"end":1585536},{"type":"TextQuoteSelector","exact":"This scenario is known as a logicbomb. A programmer, for example, might write code to detect whether hewas still employed; if that check failed, a daemon could be spawned to allowremote access, or code could be launched to cause damage to the site","prefix":"security hole would be created. ","suffix":".15.2.4 Stack and Buffer Overflo"}]}]}

%% * This scenario is known as a logicbomb. A programmer, for example, might write code to detect whether hewas still employed; if that check failed, a daemon could be spawned to allowremote access, or code could be launched to cause damage to the site * show annotation

^ifwt5nkm1v

%%

{"created":"2023-05-11T20:49:44.192Z","updated":"2023-05-11T20:49:44.192Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1594299,"end":1594363},{"type":"TextQuoteSelector","exact":"A virus is a fragment of code embed-ded in a legitimate program.","prefix":"m of program threat is a virus. ","suffix":" Viruses are self-replicating an"}]}]}

%% * A virus is a fragment of code embed-ded in a legitimate program. * show annotation

^4nbsf021nwm

%%

{"created":"2023-05-11T20:49:59.590Z","updated":"2023-05-11T20:49:59.590Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1594743,"end":1594908},{"type":"TextQuoteSelector","exact":"UNIX and other multiuser operating systems generally are not susceptibleto viruses because the executable programs are protected from writing by theoperating system.","prefix":" of15.2 Program Threats 667PCs. ","suffix":" Even if a virus does infect suc"}]}]}

%% * UNIX and other multiuser operating systems generally are not susceptibleto viruses because the executable programs are protected from writing by theoperating system. * show annotation

^4u27qb8ay0h

%%

{"created":"2023-05-11T20:50:20.214Z","updated":"2023-05-11T20:50:20.214Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1596053,"end":1596341},{"type":"TextQuoteSelector","exact":"Once a virus reaches a target machine, a programknown as a virus dropper inserts the virus into the system. The virus dropperis usually a Trojan horse, executed for other reasons but installing the virusas its core activity. Once installed, the virus may do any one of a number ofthings. ","prefix":"ide)End SubHow do viruses work? ","suffix":"There are literally thousands of"}]}]}

%% * Once a virus reaches a target machine, a programknown as a virus dropper inserts the virus into the system. The virus dropperis usually a Trojan horse, executed for other reasons but installing the virusas its core activity. Once installed, the virus may do any one of a number ofthings. * show annotation

^i9zlpbbgudo

%%

{"created":"2023-05-11T20:50:23.500Z","updated":"2023-05-11T20:50:23.500Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1596484,"end":1596488},{"type":"TextQuoteSelector","exact":"File","prefix":"ong to more than one category.• ","suffix":". A standard file virus infects "}]}]}

%% * File * show annotation

^7yjxzguiyhk

%%

{"created":"2023-05-11T20:50:25.450Z","updated":"2023-05-11T20:50:25.450Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1596856,"end":1596860},{"type":"TextQuoteSelector","exact":"Boot","prefix":"host program still functional.• ","suffix":". A boot virus infects the boot "}]}]}

%% * Boot * show annotation

^16eyc64rddc

%%

{"created":"2023-05-11T20:50:27.558Z","updated":"2023-05-11T20:50:27.558Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1597187,"end":1597192},{"type":"TextQuoteSelector","exact":"Macro","prefix":" shows how a boot virus works.• ","suffix":". Most viruses are written in a "}]}]}

%% * Macro * show annotation

^dudurn129jg

%%

{"created":"2023-05-11T20:50:32.327Z","updated":"2023-05-11T20:50:32.327Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1597489,"end":1597500},{"type":"TextQuoteSelector","exact":"Source code","prefix":"ontained in aspreadsheet file.• ","suffix":". A source code virus looks for "}]}]}

%% * Source code * show annotation

^02zcfwm2bvh3

%%

{"created":"2023-05-11T20:50:43.042Z","updated":"2023-05-11T20:50:43.042Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1598105,"end":1598212},{"type":"TextQuoteSelector","exact":"Polymorphic. A polymorphic virus changes each time it is installed toavoid detection by antivirus software.","prefix":" A boot-sector computer virus.• ","suffix":" The changes do not affect the v"}]}]}

%% * Polymorphic. A polymorphic virus changes each time it is installed toavoid detection by antivirus software. * show annotation

^e2z3v5gnekc

%%

{"created":"2023-05-11T20:50:46.843Z","updated":"2023-05-11T20:50:46.843Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1598430,"end":1598439},{"type":"TextQuoteSelector","exact":"Encrypted","prefix":"es thatmake up the virus code.• ","suffix":". An encrypted virus includes de"}]}]}

%% * Encrypted * show annotation

^hd0gmgh69ei

%%

{"created":"2023-05-11T20:50:47.891Z","updated":"2023-05-11T20:50:47.891Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1598586,"end":1598593},{"type":"TextQuoteSelector","exact":"Stealth","prefix":"rst decrypts and thenexecutes.• ","suffix":". This tricky virus attempts to "}]}]}

%% * Stealth * show annotation

^w1wvaz6fq

%%

{"created":"2023-05-11T20:50:57.066Z","updated":"2023-05-11T20:50:57.066Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1598873,"end":1598998},{"type":"TextQuoteSelector","exact":"Tunneling. This virus attempts to bypass detection by an antivirus scannerby installing itself in the interrupt-handler chain","prefix":"rather than the infected code.• ","suffix":". Similar viruses installthemsel"}]}]}

%% * Tunneling. This virus attempts to bypass detection by an antivirus scannerby installing itself in the interrupt-handler chain * show annotation

^01emkpa3oie2

%%

{"created":"2023-05-11T20:51:02.474Z","updated":"2023-05-11T20:51:02.474Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1599089,"end":1599168},{"type":"TextQuoteSelector","exact":"Multipartite. A virus of this type is able to infect multiple parts of a system","prefix":"System and Network Threats 669• ","suffix":",including boot sectors, memory,"}]}]}

%% * Multipartite. A virus of this type is able to infect multiple parts of a system * show annotation

^9c30sfmuw76

%%

{"created":"2023-05-11T20:51:06.241Z","updated":"2023-05-11T20:51:06.241Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1599259,"end":1599361},{"type":"TextQuoteSelector","exact":"Armored. An armored virus is coded to make it hard for antivirusresearchers to unravel and understand.","prefix":"ifficult to detectand contain.• ","suffix":" It can also be compressed to av"}]}]}

%% * Armored. An armored virus is coded to make it hard for antivirusresearchers to unravel and understand. * show annotation

^ggszka4u5gu

%%

{"created":"2023-05-11T20:52:11.059Z","updated":"2023-05-11T20:52:11.059Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1603102,"end":1603274},{"type":"TextQuoteSelector","exact":"A worm is a process that uses the spawn mechanism to duplicate itself. Theworm spawns copies of itself, using up system resources and perhaps lockingout all other processes","prefix":".4 and Section 15.5.15.3.1 Worms","suffix":". On computer networks, worms ar"}]}]}

%% * A worm is a process that uses the spawn mechanism to duplicate itself. Theworm spawns copies of itself, using up system resources and perhaps lockingout all other processes * show annotation

^iguy2ynt81h

%%

{"created":"2023-05-11T20:52:18.884Z","updated":"2023-05-11T20:52:18.884Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1604637,"end":1604756},{"type":"TextQuoteSelector","exact":"The worm was made up of two programs, a grappling hook (also calleda bootstrap or vector) program and the main program.","prefix":"hods of attack are outlinednext.","suffix":" Named l1.c, the grappling hook "}]}]}

%% * The worm was made up of two programs, a grappling hook (also calleda bootstrap or vector) program and the main program. * show annotation

^46sgro6ox58

%%

{"created":"2023-05-11T20:55:21.143Z","updated":"2023-05-11T20:55:21.143Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1612071,"end":1612318},{"type":"TextQuoteSelector","exact":"Port scanning is not an attack but rather a means for a cracker to detecta system’s vulnerabilities to attack. Port scanning typically is automated,involving a tool that attempts to create a TCP/IP connection to a specific portor a range of ports.","prefix":"ve resulted.15.3.2 Port Scanning","suffix":" For example, suppose there is a"}]}]}

%% * Port scanning is not an attack but rather a means for a cracker to detecta system’s vulnerabilities to attack. Port scanning typically is automated,involving a tool that attempts to create a TCP/IP connection to a specific portor a range of ports. * show annotation

^059fezbmgcmh

%%

{"created":"2023-05-11T20:55:41.465Z","updated":"2023-05-11T20:55:41.465Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1614247,"end":1614416},{"type":"TextQuoteSelector","exact":"As mentioned earlier, denial-of-service attacks are aimed not at gaininginformation or stealing resources but rather at disrupting legitimate use ofa system or facility.","prefix":"ervices.15.3.3 Denial of Service","suffix":" Most such attacks involve syste"}]}]}

%% * As mentioned earlier, denial-of-service attacks are aimed not at gaininginformation or stealing resources but rather at disrupting legitimate use ofa system or facility. * show annotation

^8zu8skrmhtv

%%

{"created":"2023-05-11T20:55:51.179Z","updated":"2023-05-11T20:55:51.179Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1614621,"end":1614810},{"type":"TextQuoteSelector","exact":"Denial-of-service attacks are generally network based. They fall into twocategories. Attacks in the first category use so many facility resources that,in essence, no useful work can be done","prefix":"king into a machine or facility.","suffix":". For example, a website click c"}]}]}

%% * Denial-of-service attacks are generally network based. They fall into twocategories. Attacks in the first category use so many facility resources that,in essence, no useful work can be done * show annotation

^29ftog82dm9

%%

{"created":"2023-05-11T20:56:12.395Z","updated":"2023-05-11T20:56:12.395Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1614946,"end":1615013},{"type":"TextQuoteSelector","exact":"he second category involves disrupting the networkof the facility. ","prefix":"r to popup windows infinitely. T","suffix":"There have been several successf"}]}]}

%% * he second category involves disrupting the networkof the facility. * show annotation

^ydxmp0nefan

%%

{"created":"2023-05-11T20:56:23.872Z","updated":"2023-05-11T20:56:23.872Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1615805,"end":1616118},{"type":"TextQuoteSelector","exact":"Generally, it is impossible to prevent denial-of-service attacks. The attacksuse the same mechanisms as normal operation. Even more difficult to preventand resolve are distributed denial-of-service (DDOS) attacks. These attacksare launched from multiple sites at once, toward a common target, typicallyby zombies.","prefix":"ed to reduce theirvulnerability.","suffix":" DDOS attacks have become more c"}]}]}

%% * Generally, it is impossible to prevent denial-of-service attacks. The attacksuse the same mechanisms as normal operation. Even more difficult to preventand resolve are distributed denial-of-service (DDOS) attacks. These attacksare launched from multiple sites at once, toward a common target, typicallyby zombies. * show annotation

^b3q40ts4yxp

%%

{"created":"2023-05-11T20:57:05.448Z","updated":"2023-05-11T20:57:05.448Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1621740,"end":1622314},{"type":"TextQuoteSelector","exact":"An encryption algorithm consists of the following components:• A set K of keys.• A set M of messages.• A set C of ciphertexts.• An encrypting function E : K → (M → C). That is, for each k ∈ K, Ek is afunction for generating ciphertexts from messages. Both E and Ek for any kshould be efficiently computable functions. Generally, Ek is a randomizedmapping from messages to ciphertexts.• A decrypting function D : K → (C → M). That is, for each k ∈ K, Dk is afunction for generating messages from ciphertexts. Both D and Dk for anyk should be efficiently computable functions.","prefix":"ption principles and algorithms.","suffix":"An encryption algorithm must pro"}]}]}

%% * An encryption algorithm consists of the following components:• A set K of keys.• A set M of messages.• A set C of ciphertexts.• An encrypting function E : K → (M → C). That is, for each k ∈ K, Ek is afunction for generating ciphertexts from messages. Both E and Ek for any kshould be efficiently computable functions. Generally, Ek is a randomizedmapping from messages to ciphertexts.• A decrypting function D : K → (C → M). That is, for each k ∈ K, Dk is afunction for generating messages from ciphertexts. Both D and Dk for anyk should be efficiently computable functions. * show annotation

^i2etyootapp

%%

{"created":"2023-05-11T20:57:27.220Z","updated":"2023-05-11T20:57:27.220Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1622912,"end":1623042},{"type":"TextQuoteSelector","exact":"In a symmetric encryption algorithm, the same key is used to encrypt and todecrypt. Therefore, the secrecy of k must be protected.","prefix":"ns.15.4.1.1 Symmetric Encryption","suffix":" Figure 15.7 shows anexample of "}]}]}

%% * In a symmetric encryption algorithm, the same key is used to encrypt and todecrypt. Therefore, the secrecy of k must be protected. * show annotation

^hw5pjksh3vo

%%

{"created":"2023-05-11T20:58:22.960Z","updated":"2023-05-11T20:58:22.960Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1625327,"end":1625468},{"type":"TextQuoteSelector","exact":"RC4 is perhaps the most common stream cipher. A stream cipher isdesigned to encrypt and decrypt a stream of bytes or bits rather than a block","prefix":"ecurely encrypt longer messages.","suffix":".This is useful when the length "}]}]}

%% * RC4 is perhaps the most common stream cipher. A stream cipher isdesigned to encrypt and decrypt a stream of bytes or bits rather than a block * show annotation

^pw4nz4zihr

%%

{"created":"2023-05-11T20:58:54.220Z","updated":"2023-05-11T20:58:54.220Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1626339,"end":1626688},{"type":"TextQuoteSelector","exact":"In an asymmetric encryption algorithm, there are different encryption anddecryption keys. An entity preparing to receive encrypted communicationcreates two keys and makes one of them (called the public key) available toanyone who wants it. Any sender can use that key to encrypt a communication,but only the key creator can decrypt the communication","prefix":"ty15.4.1.2 Asymmetric Encryption","suffix":". This scheme, knownas public-ke"}]}]}

%% * In an asymmetric encryption algorithm, there are different encryption anddecryption keys. An entity preparing to receive encrypted communicationcreates two keys and makes one of them (called the public key) available toanyone who wants it. Any sender can use that key to encrypt a communication,but only the key creator can decrypt the communication * show annotation

^wsdsu39ck2m

%%

{"created":"2023-05-11T20:59:18.186Z","updated":"2023-05-11T20:59:18.186Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1626968,"end":1627054},{"type":"TextQuoteSelector","exact":"As an example of how public-key encryption works, we describe analgorithm known as RSA","prefix":"tentity can decrypt the message.","suffix":", after its inventors, Rivest, S"}]}]}

%% * As an example of how public-key encryption works, we describe analgorithm known as RSA * show annotation

^5q1rhdfl5he

%%

{"created":"2023-05-11T20:59:28.117Z","updated":"2023-05-11T20:59:28.117Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1627346,"end":1627401},{"type":"TextQuoteSelector","exact":"In RSA, ke is the public key, and kd is the private key","prefix":"mount ofcryptographic strength.)","suffix":". N is the product oftwo large, "}]}]}

%% * In RSA, ke is the public key, and kd is the private key * show annotation

^nnhoxjlmz3

%%

{"created":"2023-05-11T21:03:29.966Z","text":"Advantages of Distributed Systems:\n\n1. Resource Sharing:\n   - Different sites in a distributed system can share resources available at remote sites.\n   - Examples include sharing files, using distributed databases, accessing specialized hardware devices, and performing various operations.\n\n2. Computation Speedup:\n   - Distributed systems allow partitioning of computations into subcomputations that can run concurrently.\n   - Subcomputations can be distributed among different sites, enabling faster computation.\n   - Load sharing or job migration can be performed to balance the workload among sites.\n\n3. Reliability:\n   - If one site fails in a distributed system, the remaining sites can continue operating, enhancing system reliability.\n   - Multiple large autonomous installations can withstand failures without affecting the entire system.\n   - Redundancy in hardware and data helps the system continue functioning even if some sites fail.\n   - Failures need to be detected, appropriate actions must be taken, and failed sites can be reintegrated after recovery.\n\n4. Communication:\n   - Distributed systems facilitate information exchange between connected sites.\n   - Messages are passed between systems, allowing various functions like file transfer, login, mail, and remote procedure calls.\n   - Collaboration and coordination between geographically distant users become possible.\n\nOverall Benefits of Distributed Systems:\n- Downsizing trend: Many companies are replacing mainframes with networks of workstations or personal computers.\n- Better functionality and cost-effectiveness.\n- More flexibility in resource allocation and facility expansion.\n- Improved user interfaces and easier maintenance.","updated":"2023-05-11T21:03:29.966Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1801335,"end":1801368},{"type":"TextQuoteSelector","exact":"Advantages of Distributed Systems","prefix":"ign of distributed systems.17.1 ","suffix":"A distributed system is a collec"}]}]}

%% * Advantages of Distributed Systems * show annotation Advantages of Distributed Systems:

  1. Resource Sharing:
  • Different sites in a distributed system can share resources available at remote sites.

  • Examples include sharing files, using distributed databases, accessing specialized hardware devices, and performing various operations.

  1. Computation Speedup:
  • Distributed systems allow partitioning of computations into subcomputations that can run concurrently.

  • Subcomputations can be distributed among different sites, enabling faster computation.

  • Load sharing or job migration can be performed to balance the workload among sites.

  1. Reliability:
  • If one site fails in a distributed system, the remaining sites can continue operating, enhancing system reliability.

  • Multiple large autonomous installations can withstand failures without affecting the entire system.

  • Redundancy in hardware and data helps the system continue functioning even if some sites fail.

  • Failures need to be detected, appropriate actions must be taken, and failed sites can be reintegrated after recovery.

  1. Communication:
  • Distributed systems facilitate information exchange between connected sites.
  • Messages are passed between systems, allowing various functions like file transfer, login, mail, and remote procedure calls.
  • Collaboration and coordination between geographically distant users become possible.

Overall Benefits of Distributed Systems:

  • Downsizing trend: Many companies are replacing mainframes with networks of workstations or personal computers.
  • Better functionality and cost-effectiveness.
  • More flexibility in resource allocation and facility expansion.
  • Improved user interfaces and easier maintenance. #chatgpt,#key terms ^6m950e3cy55

%%

{"created":"2023-05-11T21:03:43.640Z","updated":"2023-05-11T21:03:43.640Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1801368,"end":1801471},{"type":"TextQuoteSelector","exact":"A distributed system is a collection of loosely coupled nodes interconnectedby a communication network.","prefix":"dvantages of Distributed Systems","suffix":" From the point of view of a spe"}]}]}

%% * A distributed system is a collection of loosely coupled nodes interconnectedby a communication network. * show annotation

^fq6ncd3ngcv

%%

{"created":"2023-05-11T21:04:06.236Z","updated":"2023-05-11T21:04:06.236Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1802910,"end":1803013},{"type":"TextQuoteSelector","exact":"In general,resource sharing in a distributed system provides mechanisms for sharingfiles at remote site","prefix":"ccess a file that resides at A. ","suffix":"s, processing information in a d"}]}]}

%% * In general,resource sharing in a distributed system provides mechanisms for sharingfiles at remote site * show annotation

^uuqj2ud8d

%%

{"created":"2023-05-11T21:04:15.657Z","updated":"2023-05-11T21:04:15.657Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1803411,"end":1803490},{"type":"TextQuoteSelector","exact":"The subcomputations can berun concurrently and thus provide computation speedup","prefix":"ations among the various sites. ","suffix":". In addition, if aparticular si"}]}]}

%% * The subcomputations can berun concurrently and thus provide computation speedup * show annotation

^qlwespl1jz

%%

{"created":"2023-05-11T21:04:21.903Z","updated":"2023-05-11T21:04:21.903Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1803828,"end":1803950},{"type":"TextQuoteSelector","exact":"If one site fails in a distributed system, the remaining sites can continueoperating, giving the system better reliability","prefix":"rcial systems.17.1.3 Reliability","suffix":". If the system is composed ofmu"}]}]}

%% * If one site fails in a distributed system, the remaining sites can continueoperating, giving the system better reliability * show annotation

^ceqo28ylw7t

%%

{"created":"2023-05-11T21:04:33.684Z","updated":"2023-05-11T21:04:33.684Z","document":{"title":"","link":[{"href":"urn:x-pdf:2d9cb7ef5a7a8c9070382769d4774a00"},{"href":"vault:/notes/documents/os.pdf"}],"documentFingerprint":"2d9cb7ef5a7a8c9070382769d4774a00"},"uri":"vault:/notes/documents/os.pdf","target":[{"source":"vault:/notes/documents/os.pdf","selector":[{"type":"TextPositionSelector","start":1804997,"end":1805279},{"type":"TextQuoteSelector","exact":"When several sites are connected to one another by a communication network,users at the various sites have the opportunity to exchange information. Ata low level, messages are passed between systems, much as messages arepassed between processes in the single-computer message system","prefix":"em smoothly.17.1.4 Communication","suffix":" discussedin Section 3.4. Given "}]}]}

%% * When several sites are connected to one another by a communication network,users at the various sites have the opportunity to exchange information. Ata low level, messages are passed between systems, much as messages arepassed between processes in the single-computer message system * show annotation

^ziudqq9buc