操作系统概念(第七版_英文版)ch10
操作系统概念(英文)

October 2012 Operating System Concepts- Chapter4 Threads 10
a traditional process as a single-thread
more than one thread in one process
Fig.4.1 Single and Multithreaded Processes
+
resource shared by all threads in the process
Traditional process, also named heavyweight process, has a single thread of control A thread is also called a lightweight process (LWP)
October 2012 Operating System Concepts- Chapter4 Threads 9
Basic concepts (cont.)
线程内容 tID 程序计数器 堆栈 寄存器组 状态 子线程
进程内容 PID 地址空间 全局变量 打开文件 子进程 定时器 信号 信号量 记账信息
October 2012
Operating System Concepts- Chapter4 Threads -
3
4.1 Overview
4.1.1Why thread needed As described in Chapter 3, the process is as the unit of resource allocation unit of CPU scheduling The costs of process management, such as costs of process creation, cancellation, process switch and process communication, are somewhat high, refer to Fig.3.4, and the concurrency (or multiprogramming degree) may be limited. To reduce costs of process management and improve degrees of concurrency and parallelism, the thread is presented
操作系统概念第七版习题答案(中文版)完整版

1.1在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。
a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。
Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。
1.2资源的利用问题在各种各样的操作系统中出现。
试例举在下列的环境中哪种资源必须被严格的管理。
(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑Answer:(a)大型电脑或迷你电脑系统:内存和CPU资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU资源(c)手持电脑:功率消耗,内存资源1.3在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好?Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。
充分利用该系统可以对用户的问题产生影响。
比起个人电脑,问题可以被更快的解决。
还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。
当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。
1.4在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。
对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。
批处理程序在两种环境中都是非必需的。
1.5描述对称多处理(SMP)和非对称多处理之间的区别。
多处理系统的三个优点和一个缺点?Answer:SMP意味着所以处理器都对等,而且I/O可以在任何处理器上运行。
操作系统概念第七版_第01章

Operating System Definition (Cont.)
No universally accepted definition “Everything a vendor ships when you order an operating system”
is good approximation
Operating-System Operations
Process Management Memory Management Storage Management
Protection and Security
Distributed Systems Special-Purpose Systems Computing Environments
Users
Operating System Concepts – 7th Edition, Jan 12, 2005
1.5
Houor ©2011
Four Components of a Computer System
Operating System Concepts – 7th Edition, Jan 12, 2005
OS is a control program
User view
Ease of use PC Resource utilization mainframe
Operating System Concepts – 7th Edition, Jan 12, 2005
1.7
Houor ©2011
1.13
Houor ©2011
Interrupt Timeline
操作系统概念第七版答案含编程代码

solutions to the exercisesChapter 11.1 In a multiprogramming and time-sharing environment, several users share the system simultaneously. This situation can result in various security problems.a. What are two such problems?b. Can we ensure the same degree of security in a time-shared machine as in a dedicated machine? Explain your answer.Answer:a. Stealing or copying one’s programs or data; using system resources (CPU, memory, disk space, peripherals) without proper accounting.b. Probably not, since any protection scheme devised by humans can inevitably be broken by a human, and the more complex the scheme, the more difficult it is to feel confident of its correct implementation.1.2 The issue of resource utilization shows up in different forms in different types of operating systems. List what resources must be managedcarefully in the following settings: a. Mainframe or minicomputer systems b. Workstations connected to servers c. Handheld computersAnswer:a. Mainframes:memory and CPU resources, storage, network bandwidth.b. Workstations: memory and CPU resoucesc. Handheld computers: power consumption, memory resources.1.3 Under what circumstances would a user be better off using a timesharing system rather than a PC or single-user workstation?Answer: When there are few other users, the task is large, and the hardware is fast, time-sharingmakes sense. The full power of the system can be brought to bear on the user’s problem. The problemcan be solved faster than on a personal computer. Anothe r case occurs when lots of other users need resources at the same time.A personal computer is best when the job is small enough to be executed reasonably on it and when performance is sufficient to execute the program to the user’s satisfaction.1.4 Which of the functionalities listed below need to be supported by the operating system for the following two settings: (a) handheld devices and (b) real-time systems.a. Batch programmingb. Virtual memoryc. Time sharingAnswer: For real-time systems, the operating system needs to support virtual memory and time sharing in a fair manner. For handheld systems,the operating system needs to provide virtual memory, but does not need to provide time-sharing. Batch programming is not necessary in both settings.1.5 Describe the differences between symmetric and asymmetric multiprocessing.What are three advantages and one disadvantage of multiprocessor systems?Answer: Symmetric multiprocessing treats all processors as equals, and I/O can be processed on any CPU. Asymmetric multiprocessing has one master CPU and the remainder CPUs are slaves. The master distributes tasks among the slaves, and I/O is usuallydone by the master only.Multiprocessors can save money by not duplicating power supplies,housings, and peripherals. They can execute programs more quickly and can have increased reliability. They are also more complex in both hardware and software than uniprocessor systems.1.6 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service?Answer: Clustered systems are typically constructed by combining multiple computers into a single system to perform a computational task distributed across the cluster. Multiprocessor systems on the other hand could be a single physical entity comprising of multiple CPUs. A clustered system is less tightly coupled than a multiprocessor system.Clustered systems communicate using messages, while processors in a multiprocessor system could communicate using shared memory.In order for twomachines to provide a highly available service, the state on the two machines should be replicated and should be consistently updated. When one of the machines fail, the other could then take-over the functionality of the failed machine.1.7 Distinguish between the client-server and peer-to-peer models of distributed systems.Answer: The client-server model firmly distinguishes the roles of the client and server. Under this model, the client requests services that are provided by the server. The peer-to-peer model doesn’t have such strict roles. In fact, all nodes in the system are considered peers and thus may act as either clients or servers - or both. A node may request a service from another peer, or the node may in fact provide such a service to other peers in the system.For example, let’s consider a system of nodes that share cooking recipes.Under the client-server model, all recipes are stored with the server. If a client wishes to access a recipe, it must request the recipe from the specified server. Using the peer-to-peer model, a peer node could ask other peer nodes for the specified recipe. The node (or perhaps nodes) with the requested recipe could provide it to the requesting node. Notice how each peer may act as both a client (i.e. it may request recipes) and as a server (it may provide recipes.)1.8 Consider a computing cluster consisting of twonodes running adatabase.Describe two ways in which the cluster software can manage access to the data on the disk. Discuss the benefits and disadvantages of each.Answer: Consider the following two alternatives: asymmetric clustering and parallel clustering. With asymmetric clustering, one host runs the database application with the other host simply monitoring it. If the server fails, the monitoring host becomes the active server. This is appropriate for providing redundancy. However, it does not utilize the potential processing power of both hosts. With parallel clustering, the database application can run in parallel on both hosts. The difficulty implementing parallel clusters is providing some form of distributed locking mechanism for files on the shared disk.1.9 How are network computers different from traditional personal computers? Describe some usage scenarios in which it is advantageous to use network computers. Answer: A network computer relies on a centralized computer for most of its services. It can therefore have a minimal operating system to manage its resources. A personal computer on the other hand has to be capable of providing all of the required functionality in a standalonemanner without relying on a centralized manner. Scenarios where administrative costs are high and where sharing leads to more efficient use of resources are precisely those settings where network computers are preferred.1.10 What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose?Answer: An interrupt is a hardware-generated change-of-flow within the system. An interrupt handler is summoned to deal with the cause of the interrupt; control is then returned to the interrupted context and instruction. A trap is a software-generated interrupt. An interrupt can be used to signal the completion of an I/O to obviate the need for device polling. A trap can be used to call operating system routines or to catch arithmetic errors.1.11 Direct memory access is used for high-speed I/O devices in order to avoid increasing the CPU′s execution load.a. How does the CPU interface with the device to coordinate the transfer?b. How does the CPU know when the memory operations are complete?c. The CPU is allowed to execute other programs while the DMA controller is transferring data. Does this process interfere with the execution of the user programs? If so, describe what forms of interference are caused.Answer: The CPU can initiate a DMA operation by writing values into special registers that can be independently accessed by the device.The device initiates the corresponding operation once it receives a command from the CPU. When the device is finished with its operation, it interrupts the CPU to indicate the completion of the operation.Both the device and the CPU can be accessing memory simultaneously.The memory controller provides access to the memory bus in a fair manner to these two entities.A CPU might therefore be unable to issue memory operations at peak speeds since it has to compete with the device in order to obtain access to the memory bus.1.12 Some computer systems do not provide a privileged mode of operation in hardware. Is it possible to construct a secure operating system for these computer systems? Give arguments both that it is and that it is not possible.Answer: An operating system for a machine of this type would need to remain in control (or monitor mode) at all times. This could be accomplished by two methods:a. Software interpretation of all user programs (like some BASIC,Java, and LISP systems, for example). The software interpreter would provide, in software, what the hardware does not provide.b. Require meant that all programs be written in high-level languages so that all object code is compiler-produced. The compiler would generate (either in-line orby function calls) the protection checks that the hardware is missing.1.13 Give two reasons why caches are useful.What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device?Answer: Caches are useful when two or more components need to exchange data, and the components perform transfers at differing speeds.Caches solve the transfer problem by providing a buffer of intermediate speed between the components. If the fast device finds the data it needs in the cache, it need not wait for the slower device. The data in the cache must be kept consistent with the data in the components. If a omponent has a data value change, and the datum is also in the cache, the cache must also be updated. This is especially a problem on multiprocessor systemswhere more than one process may be accessing a datum.Acomponent may be eliminated by an equal-sized cache, but only if: (a) the cache and the component have equivalent state-saving capacity (that is,if the component retains its data when electricity is removed, the cache must retain data as well), and (b) the cache is affordable, because faster storage tends to be more expensive.1.14 Discuss, with examples, how the problem of maintaining coherence of cached data manifests itself in the following processing environments:a. Single-processor systemsb. Multiprocessor systemsc. Distributed systemsAnswer: In single-processor systems, the memory needs to be updated when a processor issues updates to cached values. These updates can be performed immediately or in a lazy manner. In amultiprocessor system,different processors might be caching the same memory location in its local caches. When updates are made, the other cached locations need to be invalidated or updated. In distributed systems, consistency of cached memory values is not an issue. However, consistency problems might arise when a client caches file data.1.15 Describe a mechanism for enforcing memory protection in order to prevent a program from modifying the memory associated with other programs.Answer: The processor could keep track of what locations are associated with each process and li mit access to locations that are outside of a program’s extent. Information regarding the extent of a program’s memory could be maintained by using base and limits registers and by performing a check for every memory access.1.16 What network configuration would best suit the following environments?a. A dormitory floorb. A university campusc. A stated. A nationAnswer:a. A dormitory floor - A LAN.b. A university campus - A LAN, possible a WAN for very large campuses.c. A state - AWAN.d. A nation - A WAN.1.17 Define the essential properties of the following types of operating systems:a. Batchb. Interactivec. Time sharingd. Real timee. Networkf. Parallelg. Distributedh. Clusteredi. HandheldAnswer:a. Batch. Jobs with similar needs are batched together and run through the computer as a group by an operator or automatic job sequencer. Performance is increased by attempting to keep CPU and I/O devices busy at all times through buffering, off-line operation, spooling, andmultiprogramming. Batch is good for executing large jobs that need little interaction; it can be submitted and picked up later.b. Interactive. This system is composed of many short transactions where the results of the next transaction may be unpredictable. Response time needs to be short (seconds) since the user submits and waits for the result.c. Time sharing. This systems uses CPU scheduling and multiprogramming to provide economical interactive use of a system. The CPU switches rapidly from one user to another. Instead of having a job defined by spooled card images, each program reads its next control card from the terminal, and output is normally printed immediately to the screen.d. Real time. Often used in a dedicated application, this system reads information from sensors and must respond within a fixed amount of time to ensure correct performance.e. Network. Provides operating system features across a network such as file sharing.f. SMP. Used in systems where there are multiple CPU’s each running the same copy of the operating munication takes place across the system bus.g. Distributed.This system distributes computation among several physical processors. The processors do not share memory or a clock. Instead, each processor has its own local memory. They communicate with each other through various communication lines, such as a high-speed bus or local area network.h. Clustered. A clustered system combines multiple computers into a single system to perform computational task distributed across the cluster.i. Handheld. A small computer system that performs simple tasks such as calendars, email, and web browsing. Handheld systems differ from traditional desktop systemswith smallermemory and display screens and slower processors.1.18 What are the tradeoffs inherent in handheld computers?Answer: Handheld computers are much smaller than traditional desktop PC’s. This results in smaller memory, smaller screens, and slower processing capabilities than a standard desktop PC. Because of these limitations,most handhelds currently canperform only basic tasks such as calendars, email, and simple word processing. However, due to their small size, they are quite portable and, when they are equipped with wireless access, can provide remote access to electronic mail and the world wide web.Chapter 22.1 The services and functions provided by an operating system can be divided into two main categories. Briefly describe the two categories and discuss how they differ. Answer: One class of services provided by an operating system is to enforce protection between different processes running concurrently in the system. Processes are allowed to access only thosememory locations that are associated with their address spaces. Also, processes are not allowed to corrupt files associated with other users. A process is also not allowed to access devices directly without operating system ntervention.The second class of services provided by an operating system is to provide new functionality that is not supported directly by the underlying hardware. Virtual memory and file systems are two such examples of new services provided by an operating system.2.2 List five services provided by an operating system that are designed to make it more convenient for users to use the computer system. In what cases it would be impossible for user-level programs to provide these services? Explain. Answer:•Program execution. The operating system loads the contents (or sections) of a file into memory and begins its execution. A user-level program could not be trusted to properly allocate CPU time.• I/O operations. Disks, tapes, serial lines, and other devices must be communicated with at a very low level. The user need only specify the device and the operation to perform on it, while the system converts that request into device- or controller-specific commands. User-level programs cannot be trusted to only access devices they should have access to and to only access them when they are otherwise unused.• File-system manipulation. There are many details in file creation, deletion, allocation, and naming that users should not have to perform. Blocks of disk space are used by files and must be tracked. Deleting a file requires removing the name file information and freeing the allocated blocks. Protections must also be checked to assure proper file access. User programs could neither ensure adherence to protection methods nor be trusted to allocate only free blocks and deallocate blocks on file deletion.• Communications. Message passing between systems requires mes sages be turned into packets of information, sent to the network controller,transmitted across a communications medium, and reassembled by the destination system. Packet ordering and data correction must take place. Again, user programs might not coordinate access to the network device, or they might receive packets destined for other processes. • Error detection. Error detection occurs at both the hardware and software levels.At the hardware level, all data transfers must be inspected to ensure that data have not been corrupted in transit. All data on media must be checked to be sure they have not changed since they were written to the media. At the software level, media must be checked for data consistency; for instance, do the number of allocated andunallocated blocks of storage match the total number on the device. There, errors are frequently process-independent (for instance, the corruption of data on a disk), so there must be a global program (the operating system) that handles all types of errors. Also, by having errors processed by the operating system, processes need not contain code to catch and correct all the errors possible on a system.2.3 Describe three general methods for passing parameters to the operating system. Answer:a. Pass parameters in registersb. Registers pass starting addresses of blocks of parametersc. Parameters can be placed, or pushed, onto the stack by the program, and popped off the stack by the operating system.2.4 Describe how you could obtain a statistical profile of the amount of time spent by a program executing different sections of its code.Discuss the importance of obtaining such a statistical profile.Answer: One could issue periodic timer interrupts and monitor what instructions or what sections of code are currently executing when the interrupts are delivered.A statistical profile of which pieces of code were active should be consistent with the time spent by the program in different sections of its code. Once such a statistical profile has been obtained, the programmer could optimize those sections of code that are consuming more of the CPU resources.2.5 What are the five major activities of an operating system in regard to file management?Answer:• The creation and deletion of files• The creation and delet ion of directories• The support of primitives for manipulating files and directories• The mapping of files onto secondary storage• The backup of files on stable (nonvolatile) storage media2.6 What are the advantages and disadvantages of using the same systemcall interface for manipulating both files and devices?Answer: Each device can be accessed as though it was a file in the file system. Since most of the kernel deals with devices through this file interface,it is relatively easy to add a new device driver by implementing the hardware-specific code to support this abstract file interface. Therefore,this benefits the development of both user program code, which can bewritten to access devices and files in the samemanner, and device driver code, which can be written to support a well-defined API. The disadvantage with using the same interface is that it might be difficult to capture the functionality of certain devices within the context of the file access API, thereby either resulting in a loss of functionality or a loss of performance. Someof this could be overcome by the use of ioctl operation that provides a general purpose interface for processes to invoke operations on devices.2.7 What is the purpose of the command interpreter? Why is it usually separate from the kernel? Would it be possible for the user to develop a new command interpreter using the system-call interface provided by the operating system?Answer: It reads commands from the user or from a file of commands and executes them, usually by turning them into one or more system calls. It is usually not part of the kernel since the command interpreter is subject to changes. An user should be able to develop a new command interpreter using the system-call interface provided by the operating system. The command interpreter allows an user to create and manage processes and also determine ways by which they communicate (such as through pipes and files). As all of this functionality could be accessed by an user-level program using the system calls, it should be possible for the user to develop a new command-line interpreter.2.8 What are the two models of interprocess communication? What are the strengths and weaknesses of the two approaches?Answer: The two models of interprocess communication are message-passing model and the shared-memory model.2.9 Why is the separation of mechanism and policy desirable?Answer: Mechanism and policymust be separate to ensure that systems are easy to modify. No two system installations are the same, so each installation may want to tune the operating system to suit its needs.With mechanism and policy separate, the policy may be changed at will while the mechanism stays unchanged. This arrangement provides a more flexible system.2.10 Why does Java provide the ability to call from a Java program native methods that are written in, say, C or C++? Provide an example of a situation in which a native method is useful.Answer: Java programs are intended to be platform I/O independent. Therefore, the language does not provide access to most specific system resources such as reading fromI/O devices or ports. To perform a system I/O specific operation, you must write it in a language that supports such features (such as C or C++.) Keep in mind that a Java program that calls a native method written in another language will no longer be architecture-neutral.2.11 It is sometimes difficult to achieve a layered approach if two components of the operating system are dependent on each other. Identify a scenario in which it is unclear how to layer two system components that require tight coupling of their functionalities.Answer: The virtual memory subsystem and the storage subsystem are typically tightly-coupled and requires careful design in a layered system due to the following interactions. Many systems allow files to be mapped into the virtual memory space of an executing process. On the other hand, the virtualmemory subsystem typically uses the storage system to provide the backing store for pages that do not currently reside in memory. Also, updates to the filesystem are sometimes buffered in physical memory before it is flushed to disk, thereby requiring careful coordination of theusage of memory between the virtual memory subsystem and the filesystem.2.12 What is the main advantage of the microkernel approach to system design? How do user programs and system services interact in amicrokernel architecture? What are the disadvantages of using the microkernel approach?Answer: Benefits typically include the following (a) adding a new service does not require modifying the kernel, (b) it is more secure as more operations are done in user mode than in kernel mode, and (c) a simpler kernel design and functionality typically results in a more reliable operating system. User programs and system services interact in a microkernel architecture by using interprocess communication mechanisms such asmessaging. These messages are conveyed by the operating system. The primary disadvantage of the microkernel architecture are the overheads associated with interprocess communication and the frequent use of the operating system’s messaging functions in order to enable the user process and the system service to interact with each other.2.13 In what ways is the modular kernel approach similar to the layered approach? In what ways does it differ from the layered approach?Answer: The modular kernel approach requires subsystems to interact with each other through carefully constructed interfaces that are typically narrow (in terms of the functionality that is exposed to external modules). The layered kernel approach is similar in that respect. However, the layered kernel imposes a strict ordering of subsystems such that subsystems at the lower layers are not allowed to invoke operations corresponding to the upper-layer subsystems. There are no such restrictions in the modular-kernel approach, wherein modules are free to invoke each other without any constraints.2.14 What is the main advantage for an operating-system designer of using a virtual-machine architecture? What is the main advantage for a user?Answer: The system is easy to debug, and security problems are easy to solve. Virtual machines also provide a good platform for operating system research sincemany different operating systemsmay run on one physical system.2.15 Why is a just-in-time compiler useful for executing Java programs? Answer: Java is an interpreted language. This means that the JVM interprets the bytecode instructions one at a time. Typically,most interpreted environments are slower than running native binaries, for the interpretation process requires converting each instruction into native machine code. A just-in-time (JIT) compiler compiles the bytecode for a method into native machine code the first time the method is encountered. This means that the Java program is essentially running as a native application(of course, the conversion process of the JIT takes time as wellbut not as much as bytecode interpretation.) Furthermore, the JIT caches compiled code so that it may be reused the next time the method is encountered.A Java program that is run by a JIT rather than a traditional interpreter typically runs much faster.2.16 What is the relationship between a guest operating system and a host operating system in a system like VMware? What factors need to be considered in choosing the host operating system?Answer: A guest operating system provides its services by mapping them onto thefunctionality provided by the host operating system. A key issue that needs to be considered in choosing the host operating system is whether it is sufficiently general in terms of its system-call interface in order to be able to support the functionality associated with the guest operating system.2.17 The experimental Synthesis operating system has an assembler incorporatedwithin the kernel. To optimize system-call performance, the kernel assembles routineswithin kernel space to minimize the path that the system call must take through the kernel. This approach is the antithesis of the layered approach, in which the path through the kernel is extended to make building the operating system easier. Discuss the pros and cons of the Synthesis approach to kernel design and to system-performance optimization.Answer: Synthesis is impressive due to the performance it achieves through on-the-fly compilation. Unfortunately, it is difficult to debug problems within the kernel due to the fluidity of the code. Also, such compilation is system specific, making Synthesis difficult to port (a new compiler must be written for each architecture).2.18 In Section 2.3,we described a program that copies the contents of one file toa destination file. This program works by first prompting the user for the name of the source and destination files. Write this program using either the Windows32 or POSIX API. Be sure to include all necessary error checking, including ensuring that the source file exists. Once you have correctly designed and tested the program, if you used a system that supports it, run the program using a utility that traces system calls. Linux systems provide the ptrace utility, and Solaris systems use the truss or dtrace command. On Mac OS X, the ktrace facility provides similar functionality.Answer://Solution 1:The Copy program implemented with file system calls of Linux.//This program was written by Wendell on Mar. 5,2008.// Usage: copy src dst#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#define BUFSIZE 8192int main( int argc, char ** argv){if (argc!=3){printf("\n usage: copy src dst\n");return -1;}int src, dst;char buf[BUFSIZE];。
ch10

•
有结构文件
有结构文件的文件元素是一条记录,文件时由 若干条相关记录组成。 记录式文件主要用于信息管理,例如数据库系 统等。
字符流式的无结构文件实质上是记录长度 为一个字符的连续结构文件。
Operating System Concepts – 7th Edition, Jan 1, 2005 10.10 Silberschatz, Galvin and Gagne ©2005
Operating System Concepts – 7th Edition, Jan 1, 2005
10.12
Silberschatz, Galvin and Gagne ©2005
大多数的文件系统是无结构文件系统 实际应用需要处理各种数据结构,这些数据结构由相应的应用程序 提供。 例如,Unix的文件系统,本身不含任何数据结构。但是,Unix却能 支持使用有结构文件的应用程序,如各种基于Unix操作系统的数据 库管理系统,电子邮件系统等。
Operating System Concepts – 7th Edition, Jan 1, 2005
10.8
Silberschatz, Galvin and Gagne ©2005
File Structure文件结构 Strቤተ መጻሕፍቲ ባይዱcture文件结构
The Design of logical structure of the file, is mainly about the organization of file content according to user requirements 文件的逻辑结构的设计,是针对用户的需求来对文件内容进行组织 Types of Logical File Structure 文件逻辑结构的分类 无结构文件(或称流式文件) 有结构文件(或称纪录式文件)
操作系统概念(第七版翻译版)复习题

2011-12操作系统复习题(一)进程同步●进程同步1进程P1和进程P2并发执行时满足一定的时序关系,P1的代码段S1执行完后,才能执行P2的代码段S2.为描述这种同步关系, :试设计相应的信号量, :给出信号量的初始值,●:给出进程P1和P2的结构●进程同步2问题描述:(理发店问题)一个理发店有一间配有n个椅子的等待室和一个有理发椅的理发室。
如果没有顾客,理发师就睡觉;如果顾客来了二所有的椅子都有人,顾客就离去;如果理发师在忙而有空的椅子,顾客就会坐在其中一个椅子;如果理发师在睡觉,顾客会摇醒他。
①给出同步关系②设计描述同步关系的信号量;③给出满足同步关系的进程结构(请完成满足同步关系的进程结构)。
进程同步2设公共汽车上,司机和售票员的活动分别为:司机的活动为启动车辆,正常行车,到站停车;售票员的活动为关车门,售票,开车门。
给出在汽车不断地到站、停车、行驶过程中,司机和售票员的活动的同步关系。
用信号量和wait, signal操作实现他们间的协调操作。
进程同步3:某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:(1)每两个学生组成一组,各占一台机器,协同完成上机实习;(2)只有凑够两个学生,并且此时机房有空闲机器,门卫才允许该组学生进入机房;(3)上机实习由一名教师检查,检查完毕,一组学生才可以离开机房。
试用信号量机制实现它们的同步关系。
●进程同步4:多个进程对信号量S进行了5次 wait操作,2次signal操作后,现在信号量的值是-3,与信号量S相关的处于阻塞状态的进程有几个?信号量的初值是多少?●进程同步5:使用两个进程计算Y=F1(X)+F2 (X). 在这个问题中,F1(X)和F2 (X)的计算是可以并行处理的,因此F1(X)和F2 (X)可以分别出现在两个进程中。
在F1(X)+F2 (X)中,必须在F1(X)和F2(X)计算完毕,才能进行加法运算,因此本问题是同步问题。
操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这类状况致使多种安全问题。
a. 列出此类的问题 b.在一个分机遇器中,可否保证像在专用机器上相同的安全度?并解说之。
Answer: a.盗取或许复制某用户的程序或数据;没有合理的估算来使用资源( CPU,内存,磁盘空间,外头设施)b.应当不可以,因为人类设计的任何保护体制都会不可以防止的被此外的人所破译,并且很自信的以为程序自己的实现是正确的选项是一件困难的事。
1.2 资源的利用问题在各种各种的操作系统中出现。
试例举在以下的环境中哪一种资源一定被严格的管理。
(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率耗费,内存资源1.3 在什么状况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好?Answer: 当此外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统存心义。
充足利用该系统能够对用户的问题产生影响。
比起个人电脑,问题能够被更快的解决。
还有一种可能发生的状况是在同一时间有很多此外的用户在同一时间使用资源。
看作业足够小,且能在个人计算机上合理的运转时,以及当个人计算机的性能能够充足的运转程序来达到用户的满意时,个人计算机是最好的,。
1.4 在下边举出的三个功能中,哪个功能在以下两种环境下, (a)手持装置 (b)及时系统需要操作系统的支持? (a)批办理程序 (b) 虚构储存器 (c)分时Answer: 对于及时系统来说,操作系统需要以一种公正的方式支持虚构储存器和分时系统。
对于手持系统,操作系统需要供应虚构储存器,可是不需要供应分时系统。
批办理程序在两种环境中都是非必需的。
1.5 描绘对称多办理(SMP)和非对称多办理之间的差别。
多办理系统的三个长处和一个弊端?Answer: SMP意味着所以办理器都平等,并且I/O 能够在任何办理器上运转。
操作系统概念(英文)——大纲及总结

CPU
main memory
summary
OS
DOS
features
simple/ill-structured
Unix
Mach OS2
kernel
micro-kernel layered
Solaris
Windows NT/XP, Mac OS X
Jan 2010
module
(micro-)kernel + layered
accounting User interfaces file system manipulation I/O operations program Execution (dynamic) resource allocation protection and security
services
(§2.1) (§1.2) hardware
Jan 2010
Operating System Concepts-
1
CHAPTER 1
Interrupt vs. trap(陷阱、内部中断) Storage structure and hierarchy caching, Fig. 1.4 Dual mode operation and privileged instructions (1.5) System call
communication
error detection
OS components/functions
networking
Command-interpreter system
file
management Secondary storage management
操作系统概念(第七版 翻译版)复习题

2011-12操作系统复习题(一)进程同步●进程同步1进程P1和进程P2并发执行时满足一定的时序关系,P1的代码段S1执行完后,才能执行P2的代码段S2.为描述这种同步关系, :试设计相应的信号量, :给出信号量的初始值,●:给出进程P1和P2的结构●进程同步2问题描述:(理发店问题)一个理发店有一间配有n个椅子的等待室和一个有理发椅的理发室。
如果没有顾客,理发师就睡觉;如果顾客来了二所有的椅子都有人,顾客就离去;如果理发师在忙而有空的椅子,顾客就会坐在其中一个椅子;如果理发师在睡觉,顾客会摇醒他。
①给出同步关系②设计描述同步关系的信号量;③给出满足同步关系的进程结构(请完成满足同步关系的进程结构)。
●进程同步2设公共汽车上,司机和售票员的活动分别为:司机的活动为启动车辆,正常行车,到站停车;售票员的活动为关车门,售票,开车门。
给出在汽车不断地到站、停车、行驶过程中,司机和售票员的活动的同步关系。
用信号量和wait, signal操作实现他们间的协调操作。
●进程同步3:某高校计算机系开设网络课并安排上机实习,假设机房共有2m台机器,有2n名学生选该课,规定:(1)每两个学生组成一组,各占一台机器,协同完成上机实习;(2)只有凑够两个学生,并且此时机房有空闲机器,门卫才允许该组学生进入机房;(3)上机实习由一名教师检查,检查完毕,一组学生才可以离开机房。
试用信号量机制实现它们的同步关系。
进程同步4:多个进程对信号量S进行了5次 wait操作,2次signal操作后,现在信号量的值是-3,与信号量S相关的处于阻塞状态的进程有几个?信号量的初值是多少?进程同步5:使用两个进程计算Y=F1(X)+F2 (X). 在这个问题中,F1(X)和F2 (X)的计算是可以并行处理的,因此F1(X)和F2 (X)可以分别出现在两个进程中。
在F1(X)+F2 (X)中,必须在F1(X)和F2(X)计算完毕,才能进行加法运算,因此本问题是同步问题。
操作系统ppt第一章(第七版)

3
What is an Operating System?
❖ A program that acts as an intermediary between a user of a
computer and the computer hardware ❖ Operating system goals: ✦ Execute user programs and make solving user problems easier ✦ Make the computer system convenient to use ✦ Use the computer hardware in an efficient manner
Chapter 1: Introduction
Chapter 1: Introduction
❖ What Operating Systems Do ❖ Computer-System Organization ❖ Computer-System Architecture ❖ Operating-System Structure ❖ Operating-System Operations ❖ Process Management ❖ Memory Management ❖ Storage Management ❖ Protection and Security ❖ Kernel Data Structures ❖ Computing Environments ❖ Open-Source Operating Systems
4
Computer System Structure
❖ Computer system can be divided into four components:
操作系统概念第七版答案(含编程代码)

操作系统概念第七版答案(含编程代码)Operating system concepts(Seventh edition) 2021.3solutions to the exercisesChapter 11.1 In a multiprogramming and time-sharing environment, several usersshare the system simultaneously. This situation can result in various security problems. a. What are two such problems? b. Can we ensure the same degree of security in a time-shared machine as in a dedicated machine? Explain your answer.Answer: a. Stealing or copying one’s programs or data; using systemresources (CPU, memory, disk space, peripherals) without proper accounting.b. Probably not, since any protection scheme devised by humans caninevitably be broken by a human, and the more complex the scheme, the moredifficult it is to feel confident of its correct implementation.1.2 The issue of resource utilization shows up in different forms indifferent types of operating systems. List what resources must be managedcarefully in the following settings: a. Mainframe or minicomputer systems b. Workstations connected to servers c. Handheld computersAnswer:a. Mainframes:memory and CPU resources, storage, network bandwidth.b. Workstations: memory and CPU resoucesc. Handheld computers: power consumption, memory resources.1.3 Under what circumstances would a user be better off using atimesharing system rather than a PC or single-user workstation?Answer: When there are few other users, the task is large, and thehardware is fast, time-sharingmakes sense. The full power of the system can be brought to bear on the user’s problem. The problemcan be solved faster thanon a personal computer. Another case occurs when lots of other users need resources at the same time.A personal computer is best when the job is small enough to be executed reasonably on it and when performance is sufficient to execute the program tothe user’s satisfaction.1.4 Which of the functionalities listed below need to be supported by the operating system for the following two settings: (a) handheld devices and (b)real-time systems. a. Batch programming b. Virtual memory c. TimesharingAnswer: For real-time systems, the operating system needs to supportvirtual memoryOperating system concepts(Seventh edition) 2021.3and time sharing in a fair manner. For handheld systems,the operatingsystem needs to provide virtual memory, but does not need to provide time-sharing. Batch programming is not necessary in both settings.1.5 Describe the differences between symmetric and asymmetric multiprocessing.What are three advantages and one disadvantage ofmultiprocessor systems?Answer: Symmetric multiprocessing treats all processors as equals, and I/Ocan be processed on any CPU. Asymmetric multiprocessing has one master CPU andthe remainder CPUs are slaves. The master distributes tasks among the slaves,and I/O is usually done by the master only.Multiprocessors can save money by not duplicating power supplies,housings,and peripherals. They can execute programs more quickly and can have increased reliability. They are also more complex in both hardware and software than uniprocessor systems.1.6 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide ahighly available service?Answer: Clustered systems are typically constructed by combining multiple computers into a single system to perform a computational task distributedacross the cluster. Multiprocessor systems on the other hand could be a singlephysical entity comprising of multiple CPUs. A clustered system is lesstightly coupled than a multiprocessor system.Clustered systems communicateusing messages, while processors in a multiprocessor system could communicate using shared memory.In order for twomachines to provide a highly available service, the stateon the two machines should be replicated and should be consistently updated. When one of the machines fail, the other could then take-over thefunctionality of the failed machine.1.7 Distinguish between the client-server and peer-to-peer models of distributed systems.Answer: The client-server model firmly distinguishes the roles of theclient and server. Under this model, the client requests services that are provided by the server. The peer-to-peer model doesn’t have such strict roles.In fact, all nodes in the system are considered peers and thus may act aseither clients or servers - or both. A node may request a service from another peer, or the node may in fact provide such a service to other peers in the system.For example, let’s consider a system of nodes that share cookingrecipes.Under the client-server model, all recipes are stored with the server.If a client wishes to access a recipe, it must request the recipe from the specified server. Using the peer-to-peer model, a peer node could ask otherpeer nodes for the specified recipe.Operating system concepts(Seventh edition) 2021.3The node (or perhaps nodes) with the requested recipe could provide it tothe requesting node. Notice how each peer may act as both a client (i.e. itmay request recipes) and as a server (it may provide recipes.)1.8 Consider a computing cluster consisting of twonodes runningadatabase.Describe two ways in which the cluster software can manage access tothe data on the disk. Discuss the benefits and disadvantages of each.Answer: Consider the following two alternatives: asymmetric clustering and parallel clustering. With asymmetric clustering, one host runs the database application with the other host simply monitoring it. If the server fails, the monitoring host becomes the active server. This is appropriate for providingredundancy. However, it does not utilize the potential processing power ofboth hosts. With parallel clustering, the database application can run inparallel on both hosts. The difficulty implementing parallel clusters isproviding some form of distributed locking mechanism for files on the shared disk.1.9 How are network computers different from traditional personalcomputers? Describe some usage scenarios in which it is advantageous to use network computers.Answer: A network computer relies on a centralized computer for most ofits services. It can therefore have a minimal operating system to manage its resources. A personal computer on the other hand has to be capable ofproviding all of the required functionality in a standalonemanner withoutrelying on a centralized manner. Scenarios where administrative costs are highand where sharing leads to more efficient use of resources are precisely those settings where network computers are preferred.1.10 What is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program?If so, for what purpose?Answer: An interrupt is a hardware-generated change-of-flow within the system. An interrupt handler is summoned to deal with the cause of theinterrupt; control is then returned to the interrupted context and instruction.A trap is a software-generated interrupt. An interrupt can be used to signalthe completion of an I/O to obviate the need for device polling. A trap can be used to call operating system routines or to catch arithmetic errors.1.11 Direct memory access is used for high-speed I/O devices in order toavoid increasing the CPU′s execution load.a. How does the CPU interface with the device to coordinate the transfer?b. How does the CPU know when the memory operations are complete?c. The CPU is allowed to execute other programs while the DMA controllerisOperating system concepts(Seventh edition) 2021.3transferring data. Does this process interfere with the execution of theuser programs? If so, describe what forms of interference are caused.Answer: The CPU can initiate a DMA operation by writing values into special registers that can be independently accessed by the device.The device initiates the corresponding operation once it receives a command from the CPU. When the device is finished with its operation, it interrupts the CPU to indicate the completion of the operation.Both the device and the CPU can be accessing memory simultaneously.The memory controller provides access to the memory bus in a fair manner to these two entities. A CPU might therefore be unable to issue memory operations at peak speeds since it has to compete with the device in order to obtain access to the memory bus.1.12 Some computer systems do not provide a privileged mode of operation in hardware. Is it possible to construct a secure operating system for these computer systems? Give arguments both that it is and that it is not possible.Answer: An operating system for a machine of this type would need to remain in control (or monitor mode) at all times. This could be accomplished by two methods:a. Software interpretation of all user programs (like some BASIC,Java, and LISP systems, for example). The software interpreter would provide, in software, what the hardware does not provide.b. Require meant that all programs be written in high-level languages so that all object code is compiler-produced. The compiler would generate (either in-line or by function calls) the protection checks that the hardware is missing.1.13 Give two reasons why caches are useful.What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not makeit that large and eliminate the device?Answer: Caches are useful when two or more components need to exchange data, and the components perform transfers at differing speeds.Caches solve the transfer problem by providing a buffer of intermediate speed between the components. If the fast device finds the data it needs in the cache, it need not wait for the slower device. The data in the cache must be kept consistent with the data in the components. If a omponent has a data value change, and the datum is also in the cache, the cache must also be updated. This is especially a problem on multiprocessor systemswhere more than one process maybe accessing a datum.Acomponent may be eliminated by an equal-sized cache, but only if: (a) the cache and the component have equivalent state-saving capacity (that is,if the component retains its data when electricity is removed, thecache must retain data as well), and (b) the cache is affordable, becausefaster storage tends to be more expensive.Operating system concepts(Seventh edition) 2021.31.14 Discuss, with examples, how the problem of maintaining coherence of cached data manifests itself in the following processing environments: a.Single-processor systems b. Multiprocessor systems c. Distributed systemsAnswer: In single-processor systems, the memory needs to be updated when a processor issues updates to cached values. These updates can be performed immediately or in a lazy manner. In amultiprocessor system,differentprocessors might be caching the same memory location in its local caches. When updates are made, the other cached locations need to be invalidated or updated.In distributed systems, consistency of cached memory values is not an issue. However, consistency problems might arise when a client caches file data.1.15 Describe a mechanism for enforcing memory protection in order toprevent a program from modifying the memory associated with other programs.Answer: The processor could keep track of what locations are associatedwith each process and limit access to locations that are outside of aprogram’s extent. Information regarding the extent of a program’s memorycould be maintained by using base and limits registers and by performing acheck for every memory access.1.16 What network configuration would best suit the following environments?a. A dormitory floorb. A university campusc. A stated. A nationAnswer:a. A dormitory floor - A LAN.b. A university campus - A LAN, possible a WAN for very large campuses.c.A state - AWAN. d. A nation - A WAN.1.17 Define the essential properties of the following types of operating systems: a. Batchb. Interactivec. Time sharingd. Real timee. Networkf. Parallelg. Distributedh. Clusteredi. Handheld感谢您的阅读,祝您生活愉快。
操作系统概念第七版翻译版高等教育出版郑扣根译

·1.1在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。
a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。
Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。
1.2资源的利用问题在各种各样的操作系统中出现。
试例举在下列的环境中哪种资源必须被严格的管理。
(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑Answer: (a)大型电脑或迷你电脑系统:内存和CPU资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU资源(c)手持电脑:功率消耗,内存资源1.3在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好?Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。
充分利用该系统可以对用户的问题产生影响。
比起个人电脑,问题可以被更快的解决。
还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。
当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。
1.4在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。
对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。
批处理程序在两种环境中都是非必需的。
1.5描述对称多处理(SMP)和非对称多处理之间的区别。
多处理系统的三个优点和一个缺点?Answer:SMP意味着所以处理器都对等,而且I/O可以在任何处理器上运行。
操作系统概念第七版10-12章课后题答案(中文版)

10.1 假设有一个文件系统,它里面的文件被删除后,当连接到该文件的链接依然存在时,文件的磁盘空间会再度被利用。
如果一个新的文件被创建在同一个存储区域或具有同样的绝对路径名,这会产生什么问题?如何才能避免这些问题?Answer:令旧的文件为F1,新文件为F2。
用户希望通过存在的链接进入F1,实际上将进入F2。
注意,使用的是文件F1的访问保护,而不是F2的。
这个问题可以通过确保所有被删除文件的链接也被删除来避免。
可以从几个方面来完成:a.保存一份文件所有链接的列表,删除文件时,删除每一个链接b.保留链接,当试图访问一个已删除文件时删除他们c.保存一个文件引用清单(或计数器),只有在文件所有链接或引用被删除后,删除该文件10.2 打开文件表被用以保持当前打开文件的信息,操作系统应该为每个用户保持一个单独的表吗?或者只是保持一个包含当前所有用户访问文件的引用的表?如果两个不同程序或用户访问同样的文件,在打开文件表中应包含单独的条目吗?Answer:保持一个中央的打开文件表,操作系统可以执行下列操作,否则不可执行:假设一个当前有一个或一个以上进程访问的文件。
如果该文件被删除,那么应该直到所有正在访问文件的进程关闭它时,它才能从磁盘上删除。
只要有正在访问文件的进程数目的集中核算,该检查就可以执行。
另一方面,如果两个进程正在访问该文件,则需要保持两个单独的状态来跟踪当前位置,其中部分文件正被两个进程访问。
这就要求操作系统为两个进程保持单独的条目。
10.3 一个提供强制锁,而非使用由用户决定的咨询锁的进程有何优点和缺点?Answer:在许多情况下,单独的程序可能愿意容忍同时访问一个文件,而不需要获得锁,从而确保文件的相互排斥。
其他程序结构也可以确保相互排斥,如内存锁;或其他同步的形式。
在这种情况下,强制锁将限制访问文件的灵活性,也可能增加与访问文件相关的开销。
10.4 在文件的属性中记录下创建程序的名字,其优点和缺点是什么?(在Macintosh操作系统中就是这样做的)Answer:记录下创建程序的名字,操作系统能够实现基于此信息的功能(如文件被访问时的程序自动调用)。
操作系统概念(英文)

September 2012
§1.2 Computer-System Organization
1.2.1 Computer-System Operation Fig. 1.2 A modern computer system
Commonly acknowledged classifications of OS PC/Desktop OS : Windows, Linux,Mac OS X Server OS : Unix, Linux, Windows NT Mainframe OS : Unix, Linux——open source!! Embedded OS : Vxworks, (Palm OS), (Symbian), (WinCE)/Windows Mobile/Phone, Android, iOS, embedded Linux (e.g. μcLinux)
September 2012 Operating System Concepts- Chapter1 Introduction 8
1.1.2 OS Concepts (cont.)
For OS definitions in other textbooks, refer to Appendix 1.B OS definitions
September 2012
Operating System Concepts- Chapter1 Introduction -
3
Fig.1.1-1 Components of a computer system
Application Software
操作系统概念(第七版_英文版)ch10

Single-Level Directory
A single directory for all users
Inefficient in search Naming problem Grouping problem Sharing problem Security problem
Operating System Concepts – 7th Edition, Jan 1, 2005
10.7
Silberschatz, Galvin and Gagne ©2005
Open Files
Several pieces of data are needed to manage open files:
File pointer: pointer to last read/write location, per process that has the file open File-open count: counter of number of times a file is open – to allow removal of data from open-file table when last processes closes it Disk location of the file: cache of data access information Access rights: per-process access mode information
10.20
Silberschatz, Galvin and Gagne ©2005
Two-Level Directory
Separate directory for each user
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Protection
Operating System Concepts – 7th Edition, Jan 1, 2005
10.2
Silberschatz, Galvin and Gagne ©2005
Objectives
To explain the function of file systems To describe the interfaces to file systems To discuss file-system design tradeoffs, including access methods,
Chapter 10: File-System Interface
Chapter 10: File-System Interface
File Concept Access Methods Directory Structure File-System Mounting File Sharing
Two users can have same name for different files The same file can have several different names
Grouping – logical grouping of files by properties, (e.g., all
A Typical File-system Organization
Operating System Concepts – 7th Edition, Jan 1, 2005
10.17
Silberschatz, Galvin and Gagne ©2005
Operations Performed on Directory
file sharing, file locking, and directory structures
To explore file-system protection
Operating System Concepts – 7th Edition, Jan 1, 2005
10.3
Silberschatz, Galvin and Gagne ©2005
10.20
Silberschatz, Galvin and Gagne ©2005
Two-Level Directory
Separate directory for each user
Path name Can have the same file name for different user
10.15
Silberschatz, Galvin and Gagne ©2005
Directory Structure
A collection of nodes containing information about all files Directory is a special type of files
Protection – controls who can do reading, writing, executing
Time, date, and user identification – data for protection, security,
and usage monitoring
10.7
Silberschatz, Galvin and Gagne ©2005
Open Files
Several pieces of data are needed to manage open files:
File pointer: pointer to last read/write location, per process that has the file open File-open count: counter of number of times a file is open – to allow removal of data from open-file table when last processes closes it Disk location of the file: cache of data access information Access rights: per-process access mode information
structure on disk
Operating System Concepts – 7th Edition, Jan 1, 2005
10.8
Silberschatz, Galvin and Gagne ©2005
File Types – Name, Extension
Operating System Concepts – 7th Edition, Jan 1, 2005
Operating System Concepts – 7th Edition, Jan 1, 2005
10.5
Silberschatz, Galvin and Gagne ©2005
File Attributes
Name – only information kept in human-readable form Identifier – unique tag (number) identifies file within file system Type – needed for systems that support different types Location – pointer to file location on device Size – current file size
Single-Level Directory
A single directory for all users
Inefficient in search Naming problem Grouping problem Sharing problem Security problem
Operating System Concepts – 7th Edition, Jan 1, 2005
10.12
Silberschatz, Galvin and Gagne ©2005
Access Methods
Sequential Access
read next write next reset no read after last write (rewrite)
Operating System Concepts – 7th Edition, Jan 1, 2005
Operating System Concepts – 7th Edition, Jan 1, 2005
10.14
Silberschatz, Galvin and Gagne ©2005
Example of Index and Relative Files
Operating System Concepts – 7th Edition, Jan 1, 2005
10.4
Silberschatz, Galvin and Gagne ©2005
File Structure
Logical file system
None - sequence of words, bytes
Simple record structure
Lines Fixed length
Java programs, all games, …)
Sharing – sharing files for all users.
Operating System Concepts – 7th Edition, Jan 1, 2005
10.19
Silberschatz, Galvin and Gagne ©2005
Variable length Complex Structures Formatted document Relocatable load file Can simulate last two with first method by inserting appropriate control characters Who decides: Operating system In Unix, don’t distinguish with bitstream files and structural files Program
Search for a file Create a file Delete a file List a directory Rename a file
Traverse the file system
Operating System Concepts – 7th Edition, Jan 1, 2005
10.13
Silberschatz, Galvin and Gagne ©2005
Simulation of Sequential Access on a Direct-access File
Direct Access
read n write n position to n read next write next rewrite n n = relative block number
10.18
Silberschatz, Galvin and Gagne ©2005
Organize the Directory (Logically) to Obtain
Efficiency – locating a file quickly
Naming – convenient to users