This document discusses file systems and their components. It covers topics like file processing, file organizations and access methods, directories, mounting file systems, file protection, disk space allocation, interfaces between file systems and IOCS, file sharing semantics, reliability of file systems, and journaling file systems. The document provides details on how files are organized, stored, accessed and shared in operating systems.
The document discusses how operating systems manage files and memory allocation. It explains that from the computer's perspective, there are no actual files, only blocks of allocated and unallocated memory. The file manager in the operating system creates the illusion of files and folders by tracking memory locations and implementing file allocation policies. Files can be stored contiguously, non-contiguously, or through indexed allocation with pointers. Access controls determine which users can access which files.
File systems organize and store data on various storage media like hard drives. They consist of structures like directories and files to track allocated space, file names and locations. Key functions include managing free space, directories, and file storage locations. Common file systems include FAT, NTFS, disk, flash, tape, database, network and special purpose file systems. File systems use inodes, directories, block allocation maps and other metadata to organize and track files.
The document provides an overview of file systems, including their purpose of organizing and storing information on storage devices. It discusses key aspects of file systems such as how they separate information into individual files and directories, use metadata to store attributes about files, allocate storage space in a granular manner (which can result in unused space), become fragmented over time, and use various utilities and structures to implement these functions while maintaining integrity of data and restricting access. File systems are a critical component of operating systems that allow for efficient organization, retrieval and updating of user data on different types of storage media and devices.
The document discusses disk formatting, which prepares a data storage device. Formatting involves low-level formatting to subdivide tracks into blocks, partitioning to allow operating system access, and high-level formatting to set up a file system. Advanced format uses larger sectors for storage efficiency and error correction at higher densities. Formatting operations create the structure of sectors with gaps, sync marks, address marks, data, and error correction codes. Methods to check partition alignment on Windows include using the wmic command to view starting offsets.
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when no longer needed. This is critical to any advanced computer system where more than a single process might be underway at any time
Virtual Memory
• Copy-on-Write
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating-System Examples
Background
Page Table When Some PagesAre Not in Main Memory
Steps in Handling a Page Fault
Directory implementation and allocation methodssangrampatil81
This document discusses directory implementation and file allocation methods in file systems. It describes two common directory implementation algorithms: linear lists and hash tables. It also outlines three file allocation methods: contiguous allocation, linked allocation, and indexed allocation. Each method is explained along with its advantages and disadvantages.
The document discusses input/output (I/O) and file management in operating systems. It covers several key topics:
1) I/O devices are controlled by the OS and include input devices like keyboards and output devices like monitors. Files are managed through a logical, uniform view abstracted from physical storage properties.
2) A file is a collection of related information defined by its creator, such as programs, data, text, or formatted records. File management involves creation, deletion, mapping to storage, and backup.
3) The OS implements I/O buffering and caching to improve performance and address speed mismatches between devices. It also performs disk scheduling and structures file storage through directories, indexing,
The document discusses how operating systems manage files and memory allocation. It explains that from the computer's perspective, there are no actual files, only blocks of allocated and unallocated memory. The file manager in the operating system creates the illusion of files and folders by tracking memory locations and implementing file allocation policies. Files can be stored contiguously, non-contiguously, or through indexed allocation with pointers. Access controls determine which users can access which files.
File systems organize and store data on various storage media like hard drives. They consist of structures like directories and files to track allocated space, file names and locations. Key functions include managing free space, directories, and file storage locations. Common file systems include FAT, NTFS, disk, flash, tape, database, network and special purpose file systems. File systems use inodes, directories, block allocation maps and other metadata to organize and track files.
The document provides an overview of file systems, including their purpose of organizing and storing information on storage devices. It discusses key aspects of file systems such as how they separate information into individual files and directories, use metadata to store attributes about files, allocate storage space in a granular manner (which can result in unused space), become fragmented over time, and use various utilities and structures to implement these functions while maintaining integrity of data and restricting access. File systems are a critical component of operating systems that allow for efficient organization, retrieval and updating of user data on different types of storage media and devices.
The document discusses disk formatting, which prepares a data storage device. Formatting involves low-level formatting to subdivide tracks into blocks, partitioning to allow operating system access, and high-level formatting to set up a file system. Advanced format uses larger sectors for storage efficiency and error correction at higher densities. Formatting operations create the structure of sectors with gaps, sync marks, address marks, data, and error correction codes. Methods to check partition alignment on Windows include using the wmic command to view starting offsets.
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when no longer needed. This is critical to any advanced computer system where more than a single process might be underway at any time
Virtual Memory
• Copy-on-Write
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating-System Examples
Background
Page Table When Some PagesAre Not in Main Memory
Steps in Handling a Page Fault
Directory implementation and allocation methodssangrampatil81
This document discusses directory implementation and file allocation methods in file systems. It describes two common directory implementation algorithms: linear lists and hash tables. It also outlines three file allocation methods: contiguous allocation, linked allocation, and indexed allocation. Each method is explained along with its advantages and disadvantages.
The document discusses input/output (I/O) and file management in operating systems. It covers several key topics:
1) I/O devices are controlled by the OS and include input devices like keyboards and output devices like monitors. Files are managed through a logical, uniform view abstracted from physical storage properties.
2) A file is a collection of related information defined by its creator, such as programs, data, text, or formatted records. File management involves creation, deletion, mapping to storage, and backup.
3) The OS implements I/O buffering and caching to improve performance and address speed mismatches between devices. It also performs disk scheduling and structures file storage through directories, indexing,
The document discusses the structure of file systems. It explains that a file system provides mechanisms for storing and accessing files and data. It uses a layered approach, with each layer responsible for specific tasks related to file management. The logical file system contains metadata and verifies permissions and paths. It maps logical file blocks to physical disk blocks using a file organization module, which also manages free space. The basic file system then issues I/O commands to access those physical blocks via device drivers, with I/O controls handling interrupts.
This document discusses threads and threading models. It defines a thread as the basic unit of CPU utilization consisting of a program counter, stack, and registers. Threads allow for simultaneous execution of tasks within the same process by switching between threads rapidly. There are three main threading models: many-to-one maps many user threads to one kernel thread; one-to-one maps each user thread to its own kernel thread; many-to-many maps user threads to kernel threads in a variable manner. Popular thread libraries include POSIX pthreads and Win32 threads.
Swapping is the process of exchanging memory pages between main memory and secondary storage, such as a hard disk. There are three types of swapping that occur. When memory becomes full, inactive processes are swapped out to disk to free up space, and are swapped back in when needed. The first UNIX systems constantly monitored free memory and swapped out processes to disk when levels fell below a threshold. Swap space is used on Linux when RAM is full, with inactive memory pages moved to the swap file to free up space. The swap cache helps avoid race conditions when processes access pages being swapped by collecting shared pages that have been copied to swap space.
The document discusses Linux file systems. It describes that Linux uses a hierarchical tree structure with everything treated as a file. It explains the basic components of a file system including the boot block, super block, inode list, and block list. It then covers different types of file systems for Linux like ext2, ext3, ext4, FAT32, NTFS, and network file systems like NFS and SMB. It also discusses absolute vs relative paths and mounting and unmounting filesystems using the mount and umount commands.
The document discusses disk partitioning, formatting, and different types of storage in Windows Server 2008. It defines basic disk storage using primary and extended partitions, and dynamic disk storage which allows volumes to span multiple disks. The different types of dynamic storage volumes are described - simple, spanned, striped, mirrored, and RAID-5. Steps are provided to create each type of volume on dynamic disks in Windows Server 2008.
The document discusses memory management techniques in UNIX, including swapping, demand paging, and how they are implemented in Intel Pentium hardware. Swapping involves copying processes from memory to disk swap space to free up memory. Demand paging only loads pages into memory when accessed. The Pentium supports segmentation and paging, where logical addresses are translated to linear then physical addresses using segment descriptors, page directories and tables.
The document discusses different aspects of file systems and file structures. It describes files as collections of data that have long-term existence, can be shared between processes, and organized hierarchically. File systems provide storage for files and functions to manipulate them, maintaining attributes. Common file structures include sequential, indexed sequential, and direct/hashed files. The document also outlines the components of a file system software architecture and operations performed on directories.
This document discusses desktop systems and multiprocessor systems.
For desktop systems, it describes them as personal computers dedicated to single users, with keyboards, mice, displays and small printers. It notes they run operating systems like Windows, MacOS, UNIX and Linux.
For multiprocessor systems, it defines them as having multiple processors that share clocks, memory and buses. Symmetric multiprocessors have similar operating systems on each processor, while asymmetric ones have predefined master-slave roles. Multiprocessor systems provide advantages like reliability, throughput and cost-effectiveness, but require more memory, expense and complex operating systems.
The document discusses CPU scheduling in Windows operating systems. It covers scheduling algorithms used in different versions of Windows like Windows 3.1x, 95, NT, XP, 7, and 8. The key points discussed are:
- Windows uses a pre-emptive, priority-based scheduler with 32 priority levels and multi-level queues.
- The dispatcher determines thread execution order based on priority class and relative priority within class.
- Interactive threads get priority boosts after waits to improve response time.
- The foreground process in Windows XP gets preferential treatment over background processes.
- Later versions introduced improvements like user-mode scheduling and CPU cycle-based scheduling.
Overview - Functions of an Operating System – Design Approaches – Types of Advanced
Operating System - Synchronization Mechanisms – Concept of a Process, Concurrent
Processes – The Critical Section Problem, Other Synchronization Problems – Language
Mechanisms for Synchronization – Axiomatic Verification of Parallel Programs - Process
Deadlocks - Preliminaries – Models of Deadlocks, Resources, System State – Necessary and
Sufficient conditions for a Deadlock – Systems with Single-Unit Requests, Consumable
Resources, Reusable Resources.
Windows Server 2003 supports two data storage types: basic disks using traditional partitioning and dynamic disks allowing more volumes per disk. Disk Management is the primary tool for managing partitions, volumes, and disk properties. Fault tolerance can be achieved through software RAID strategies like RAID 1 (disk mirroring) and RAID 5 (striped volumes with distributed parity). A variety of command line utilities are available for additional disk management tasks and monitoring disk health.
Memory is encoded, stored, and retrieved through processes. Encoding allows external information to reach our senses. Memory allocation involves setting aside space, such as allocating hard drive space for an application. It places blocks of information in memory systems. To allocate memory, the memory management system tracks available memory and allocates only what is needed, keeping the rest available. If insufficient memory exists, blocks may be swapped. Static and dynamic allocation methods exist, with dynamic using nonpreemptive and preemptive allocation. Nonpreemptive allocation searches memory for available space for a transferring block. Preemptive allocation more efficiently uses memory through compaction. Different memory types store executable code, variables, and dynamically sized structures, with heap memory
The document provides an overview of operating systems with the following key points:
1) An operating system manages computer hardware and software resources, allocating memory, CPU time, disk space, and handling input/output devices. It provides a default interface between applications and the user.
2) Operating systems aim to make computers more convenient to use, efficiently allocate resources, and allow new functions to be introduced without disrupting existing services.
3) Services provided by operating systems include program development, execution and debugging, access to input/output devices, controlled file access, system access, error detection and response, and accounting.
4) Operating systems consist of components like the user interface, kernel, memory management
The document discusses various aspects of file systems and storage management in operating systems. It covers topics like file attributes, operations, structures, access methods, directory structures, file sharing, consistency semantics, and protection. File attributes include the file name, size, type and protection attributes. Common file operations are creating, reading, writing and deleting files. Files can have sequential, direct or indexed access methods. Directory structures can be single-level, two-level, tree-structured or graph-based. File sharing requires consistency models like Unix, session or immutable semantics. Protection controls access via access matrices, access control lists or capability lists.
A file system is used to control how data is stored and retrieved.
A filesystem is the methods and data structures that an operating system uses to keep track of files on a disk or partition; that is, the way the files are organized on the disk.
A file allocation table (FAT) is a table that an operating system maintains on a hard disk that provides a map of the clusters (the basic units of logical storage on a hard disk) that a file has been stored in.
File Allocation Table (FAT) is a computer file system architecture and a family of industry-standard file systems utilizing it. The FAT file system is a legacy file system which is simple and robust.
Today, FAT file systems are still commonly found on floppy disks, USB sticks, flash and other solid-state memory cards and modules, and many portable and embedded devices.
The document discusses several aspects of file and directory structure in operating systems. It describes different approaches to implementing directories, including linear lists and hash tables. It also discusses file access mechanisms in distributed file systems, including how file name mapping, caching, and various protocols for open, read, and close operations work. The key components of a file system structure, such as the logical file system, file organization module, and layers of an application program, logical file system, and file organization are also summarized.
The document discusses the structure of file systems. It explains that a file system provides mechanisms for storing and accessing files and data. It uses a layered approach, with each layer responsible for specific tasks related to file management. The logical file system contains metadata and verifies permissions and paths. It maps logical file blocks to physical disk blocks using a file organization module, which also manages free space. The basic file system then issues I/O commands to access those physical blocks via device drivers, with I/O controls handling interrupts.
This document discusses threads and threading models. It defines a thread as the basic unit of CPU utilization consisting of a program counter, stack, and registers. Threads allow for simultaneous execution of tasks within the same process by switching between threads rapidly. There are three main threading models: many-to-one maps many user threads to one kernel thread; one-to-one maps each user thread to its own kernel thread; many-to-many maps user threads to kernel threads in a variable manner. Popular thread libraries include POSIX pthreads and Win32 threads.
Swapping is the process of exchanging memory pages between main memory and secondary storage, such as a hard disk. There are three types of swapping that occur. When memory becomes full, inactive processes are swapped out to disk to free up space, and are swapped back in when needed. The first UNIX systems constantly monitored free memory and swapped out processes to disk when levels fell below a threshold. Swap space is used on Linux when RAM is full, with inactive memory pages moved to the swap file to free up space. The swap cache helps avoid race conditions when processes access pages being swapped by collecting shared pages that have been copied to swap space.
The document discusses Linux file systems. It describes that Linux uses a hierarchical tree structure with everything treated as a file. It explains the basic components of a file system including the boot block, super block, inode list, and block list. It then covers different types of file systems for Linux like ext2, ext3, ext4, FAT32, NTFS, and network file systems like NFS and SMB. It also discusses absolute vs relative paths and mounting and unmounting filesystems using the mount and umount commands.
The document discusses disk partitioning, formatting, and different types of storage in Windows Server 2008. It defines basic disk storage using primary and extended partitions, and dynamic disk storage which allows volumes to span multiple disks. The different types of dynamic storage volumes are described - simple, spanned, striped, mirrored, and RAID-5. Steps are provided to create each type of volume on dynamic disks in Windows Server 2008.
The document discusses memory management techniques in UNIX, including swapping, demand paging, and how they are implemented in Intel Pentium hardware. Swapping involves copying processes from memory to disk swap space to free up memory. Demand paging only loads pages into memory when accessed. The Pentium supports segmentation and paging, where logical addresses are translated to linear then physical addresses using segment descriptors, page directories and tables.
The document discusses different aspects of file systems and file structures. It describes files as collections of data that have long-term existence, can be shared between processes, and organized hierarchically. File systems provide storage for files and functions to manipulate them, maintaining attributes. Common file structures include sequential, indexed sequential, and direct/hashed files. The document also outlines the components of a file system software architecture and operations performed on directories.
This document discusses desktop systems and multiprocessor systems.
For desktop systems, it describes them as personal computers dedicated to single users, with keyboards, mice, displays and small printers. It notes they run operating systems like Windows, MacOS, UNIX and Linux.
For multiprocessor systems, it defines them as having multiple processors that share clocks, memory and buses. Symmetric multiprocessors have similar operating systems on each processor, while asymmetric ones have predefined master-slave roles. Multiprocessor systems provide advantages like reliability, throughput and cost-effectiveness, but require more memory, expense and complex operating systems.
The document discusses CPU scheduling in Windows operating systems. It covers scheduling algorithms used in different versions of Windows like Windows 3.1x, 95, NT, XP, 7, and 8. The key points discussed are:
- Windows uses a pre-emptive, priority-based scheduler with 32 priority levels and multi-level queues.
- The dispatcher determines thread execution order based on priority class and relative priority within class.
- Interactive threads get priority boosts after waits to improve response time.
- The foreground process in Windows XP gets preferential treatment over background processes.
- Later versions introduced improvements like user-mode scheduling and CPU cycle-based scheduling.
Overview - Functions of an Operating System – Design Approaches – Types of Advanced
Operating System - Synchronization Mechanisms – Concept of a Process, Concurrent
Processes – The Critical Section Problem, Other Synchronization Problems – Language
Mechanisms for Synchronization – Axiomatic Verification of Parallel Programs - Process
Deadlocks - Preliminaries – Models of Deadlocks, Resources, System State – Necessary and
Sufficient conditions for a Deadlock – Systems with Single-Unit Requests, Consumable
Resources, Reusable Resources.
Windows Server 2003 supports two data storage types: basic disks using traditional partitioning and dynamic disks allowing more volumes per disk. Disk Management is the primary tool for managing partitions, volumes, and disk properties. Fault tolerance can be achieved through software RAID strategies like RAID 1 (disk mirroring) and RAID 5 (striped volumes with distributed parity). A variety of command line utilities are available for additional disk management tasks and monitoring disk health.
Memory is encoded, stored, and retrieved through processes. Encoding allows external information to reach our senses. Memory allocation involves setting aside space, such as allocating hard drive space for an application. It places blocks of information in memory systems. To allocate memory, the memory management system tracks available memory and allocates only what is needed, keeping the rest available. If insufficient memory exists, blocks may be swapped. Static and dynamic allocation methods exist, with dynamic using nonpreemptive and preemptive allocation. Nonpreemptive allocation searches memory for available space for a transferring block. Preemptive allocation more efficiently uses memory through compaction. Different memory types store executable code, variables, and dynamically sized structures, with heap memory
The document provides an overview of operating systems with the following key points:
1) An operating system manages computer hardware and software resources, allocating memory, CPU time, disk space, and handling input/output devices. It provides a default interface between applications and the user.
2) Operating systems aim to make computers more convenient to use, efficiently allocate resources, and allow new functions to be introduced without disrupting existing services.
3) Services provided by operating systems include program development, execution and debugging, access to input/output devices, controlled file access, system access, error detection and response, and accounting.
4) Operating systems consist of components like the user interface, kernel, memory management
The document discusses various aspects of file systems and storage management in operating systems. It covers topics like file attributes, operations, structures, access methods, directory structures, file sharing, consistency semantics, and protection. File attributes include the file name, size, type and protection attributes. Common file operations are creating, reading, writing and deleting files. Files can have sequential, direct or indexed access methods. Directory structures can be single-level, two-level, tree-structured or graph-based. File sharing requires consistency models like Unix, session or immutable semantics. Protection controls access via access matrices, access control lists or capability lists.
A file system is used to control how data is stored and retrieved.
A filesystem is the methods and data structures that an operating system uses to keep track of files on a disk or partition; that is, the way the files are organized on the disk.
A file allocation table (FAT) is a table that an operating system maintains on a hard disk that provides a map of the clusters (the basic units of logical storage on a hard disk) that a file has been stored in.
File Allocation Table (FAT) is a computer file system architecture and a family of industry-standard file systems utilizing it. The FAT file system is a legacy file system which is simple and robust.
Today, FAT file systems are still commonly found on floppy disks, USB sticks, flash and other solid-state memory cards and modules, and many portable and embedded devices.
The document discusses several aspects of file and directory structure in operating systems. It describes different approaches to implementing directories, including linear lists and hash tables. It also discusses file access mechanisms in distributed file systems, including how file name mapping, caching, and various protocols for open, read, and close operations work. The key components of a file system structure, such as the logical file system, file organization module, and layers of an application program, logical file system, and file organization are also summarized.
The document discusses file systems and file management. It defines what a file is and common file attributes like name, size, location, and permissions. It describes different types of files and various file operations. It also covers file system concepts like directory structures, access methods, open file management, and file sharing. File system protection and permissions are controlled through access lists, user and group IDs. Remote file systems allow files to be shared over a network using client-server models and distributed file systems.
This document provides guidance on standard operating and maintenance procedures for file systems. It discusses file system maintenance techniques, such as creating an organized directory structure, finding and deleting unused files on a regular basis, and performing disk maintenance like defragmenting to optimize performance. Backup plans and software installation procedures are also covered. The document provides examples of directory structures and maintenance tasks for different operating systems including Windows, Linux/UNIX, and Mac OS X.
This document discusses key concepts related to operating systems including file concepts, access methods, file types, file operations, directory structures, file system structures, and allocation methods. It provides details on sequential, random, and indexed access methods. File types are described as ordinary, directory, and special files. Contiguous, linked, and indexed allocation methods are summarized. The document appears to be class notes on operating system concepts for students.
File system in operating system e learningLavanya Sharma
This document provides an overview of operating system file systems. It defines what a file is and discusses different file structures, directory structures like single level, two-level, tree-structured and acyclic graph structures. It also covers file types, file operations, space allocation techniques, security and protection methods. The document concludes with describing the basic architecture and commands of the Linux operating system.
The document discusses various topics related to file management in operating systems. It defines what a file is, the objectives of file management systems, properties of file systems, different file structures, attributes, types, access methods, space allocation techniques, and directories. It provides details on sequential, random, and indexed sequential access methods and linked, indexed, and contiguous allocation.
The document discusses file management in operating systems. It covers topics such as the basic functions of a file system, different file organization techniques like sequential, direct and indexed sequential, file structures, file allocation methods like contiguous, linked and indexed, free space management using free lists or bitmaps, file access control, and backup techniques. File systems are responsible for organizing files and managing access to data on storage devices in a way that facilitates navigation and protects data from corruption or loss.
This document provides an overview of file management and file systems. It discusses the basic components of a file including fields, records, files, and databases. It describes common file organization types like sequential, indexed sequential, indexed, and direct files. It also explains the basic components and objectives of a file management system. Finally, it covers B-trees, which are a balanced tree structure commonly used to organize indexes in databases and file systems to provide efficient searching, insertion, and deletion of items.
The file manager is responsible for file storage, allocation, and access. It tracks file locations, implements storage policies, and provides efficient file I/O. The file manager organizes files into records, directories, and volumes. It uses logical commands to access and manage files regardless of their physical storage properties. Directories allow grouping of related files in a tree structure to improve organization and access.
UNIT 4-UNDERSTANDING VIRTUAL MEMORY.pptxLeahRachael
Virtual memory uses demand paging to improve memory usage by only loading pages from disk into RAM when needed by the CPU. This allows programs to be larger than physical RAM since unused pages remain on disk. When a program accesses a page not in RAM, a page fault occurs and the OS loads the required page from disk transparently. Demand paging allows more efficient use of physical RAM and faster program startup compared to loading the entire program at once.
Operating System File Management Unit v.pptxSanthiNivas
This document discusses file management. It begins by introducing the file manager and its responsibilities, which include file storage tracking, policy implementation, file allocation and deallocation. The file manager determines file storage locations and system/user access based on policy. It then defines key concepts like fields, records, files, databases, program files and data files. It describes how users interact with the file manager using logical commands and describes typical volume configurations including the master file directory and subdirectories. It concludes by discussing file descriptors and file naming conventions.
Access Methods and File System Mounting.pptxlaiba29012
There are three main ways to access files in a computer: sequential access, direct access, and index access. Sequential access reads files in order from beginning to end, direct access allows reading or writing any block directly by number, and index access uses pointers in an index to access records. A file system must be mounted before files can be accessed, with mount points typically being empty directories where the file system attaches within the overall file structure.
The document discusses file systems and deadlocks. It covers key aspects of file systems like space management, file names, directories, and metadata. It also discusses different types of file systems and file operations. The document then covers deadlocks, characterizing them and describing methods to handle deadlocks through prevention, avoidance, detection, and recovery.
The document discusses key concepts related to distributed file systems including:
1. Files are accessed using location transparency where the physical location is hidden from users. File names do not reveal storage locations and names do not change when locations change.
2. Remote files can be mounted to local directories, making them appear local while maintaining location independence. Caching is used to reduce network traffic by storing recently accessed data locally.
3. Fault tolerance is improved through techniques like stateless server designs, file replication across failure independent machines, and read-only replication for consistency. Scalability is achieved by adding new nodes and using decentralized control through clustering.
The File Manager or File Management System is the manager in the Operating System that creates the illusion that there are files and folders being stored in computer memory. You want to read about interesting and entertaining technology myth go through http://wonderside.net/7-common-myths-about-the-technology/
This document discusses file systems and file management. It begins by defining key file concepts like file attributes and operations. It then covers topics like access methods, directory structures, file sharing, protection, and file system implementation details. The objectives are to explain file system functions, describe interfaces, discuss design tradeoffs for components like access methods and directories, and explore file system protection.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
2. Operating Systems, by Dhananjay Dhamdhere 13.2Operating Systems, by Dhananjay Dhamdhere 2
Introduction
• Overview of File Processing
• Files and File Operations
• Fundamental File Organizations and Access Methods
• Directories
• Mounting of File Systems
• File Protection
• Allocation of Disk Space
• Interface Between File System and IOCS
3. Operating Systems, by Dhananjay Dhamdhere 13.3Operating Systems, by Dhananjay Dhamdhere 3
Introduction (continued)
• File Processing
• File Sharing Semantics
• File System Reliability
• Journaling File Systems
• Virtual File System
• Case Studies of File Systems
• Performance of File Systems
4. Operating Systems, by Dhananjay Dhamdhere 13.4Operating Systems, by Dhananjay Dhamdhere 4
Overview of File Processing
5. Operating Systems, by Dhananjay Dhamdhere 13.5Operating Systems, by Dhananjay Dhamdhere 5
File System and the IOCS
• File system views a file as a collection of data that is
owned by a user, shared by a set of authorized users,
and reliably stored over an extended period
• IOCS views it as a repository of data that is accessed
speedily and stored on I/O device that is used efficiently
• Two kinds of data: file data and control data
6. Operating Systems, by Dhananjay Dhamdhere 13.6Operating Systems, by Dhananjay Dhamdhere 6
File Processing in a Program
• At programming language level:
– File: object with attributes describing organization of its
data and the method of accessing the data
7. Operating Systems, by Dhananjay Dhamdhere 13.7Operating Systems, by Dhananjay Dhamdhere 7
• File types can be grouped into two classes:
– Structured files: Collection of records
• Record: collection of fields
• Field: contains a single data item
• Each record is assumed to contain a unique key field
– Byte stream files: “Flat”
• A file has attributes, stored in its directory entry
Files and File Operations
8. Operating Systems, by Dhananjay Dhamdhere 13.8Operating Systems, by Dhananjay Dhamdhere 8
Files and File Operations (continued)
9. Operating Systems, by Dhananjay Dhamdhere 13.9Operating Systems, by Dhananjay Dhamdhere 9
Fundamental File Organizations and
Access Methods
• Fundamental record access patterns:
– Sequential access
– Random access
• File organization is a combination of two features:
– Method of arranging records in a file
– Procedure for accessing them
• Accesses to files governed by a specific file
organization are implemented by IOCS module called
access method
10. Operating Systems, by Dhananjay Dhamdhere 13.10Operating Systems, by Dhananjay Dhamdhere 10
Sequential File Organization
• Records are stored in an ascending or descending
sequence according to the key field
• Record access pattern of an application is expected to
follow suit
• Two kinds of operations:
– Read the next (or previous) record
– Skip the next (or previous) record
• Uses:
– When data can be conveniently presorted into an
ascending or descending order
– For byte stream files
11. Operating Systems, by Dhananjay Dhamdhere 13.11Operating Systems, by Dhananjay Dhamdhere 11
Direct File Organization
• Provides convenience/efficiency of file processing when
records are accessed in a random order
• Files are called direct-access files
• Read/write command indicates value in key field
– Key value is used to generate address of record in
storage medium
• Disadvantages:
– Record address calculation consumes CPU time
– Some recording capacity of disk is wasted
– Dummy records exist for key values that are not in use
12. Operating Systems, by Dhananjay Dhamdhere 13.12Operating Systems, by Dhananjay Dhamdhere 12
Example: Sequential and Direct Files
• Employees with the employee numbers 3, 5–9 and 11
have left the organization
– Direct file has dummy records for them
13. Operating Systems, by Dhananjay Dhamdhere 13.13Operating Systems, by Dhananjay Dhamdhere 13
Index Sequential File Organization
• An index helps determine location of a record from its
key value
– Pure indexed organization: (key value, disk address)
– Index sequential organization uses index to identify
section of disk surface that may contain the record
• Records in the section are then searched sequentially
14. Operating Systems, by Dhananjay Dhamdhere 13.14Operating Systems, by Dhananjay Dhamdhere 14
Access Methods
• Access method: IOCS module that implements
accesses to a class of files using a specific file
organization
– Procedure determined by file organization
– Advanced I/O techniques are used for efficiency:
• Buffering of records
– Records of an input file are read ahead of the time when they
are needed by a process
• Blocking of records
– A large block of data, whose size exceeds the size of a record
in the file, is always read from, or written onto, the I/O medium
15. Operating Systems, by Dhananjay Dhamdhere 13.15Operating Systems, by Dhananjay Dhamdhere 15
Directories
16. Operating Systems, by Dhananjay Dhamdhere 13.16Operating Systems, by Dhananjay Dhamdhere 16
Directories (continued)
• File system needs to grant users:
– File naming freedom
– File sharing
• File system creates several directories
– Uses a directory structure to organize them
• Provides file naming freedom and file sharing
17. Operating Systems, by Dhananjay Dhamdhere 13.17Operating Systems, by Dhananjay Dhamdhere 17
Directory Trees
• Some concepts: home directory, current directory
• Path names used to uniquely identify files
– Relative path name
– Absolute path name
18. Operating Systems, by Dhananjay Dhamdhere 13.18Operating Systems, by Dhananjay Dhamdhere 18
Directory Graphs
• Tree structure leads to a fundamental asymmetry in the
way different users can access a shared file
– Solution: use acyclic graph structure for directories
• A link is a directed connection between two existing files in
the directory structure
19. Operating Systems, by Dhananjay Dhamdhere 13.19Operating Systems, by Dhananjay Dhamdhere 19
Operations on Directories
• Most frequent operation on directories: search
• Other operations are maintenance operations like:
– Creating or deleting files
– Updating file entries (upon a close operation)
– Listing a directory
– Deleting a directory
• Deletion becomes complicated when directory structure
is a graph
– A file may have multiple parents
– File system maintains a link count with each file
20. Operating Systems, by Dhananjay Dhamdhere 13.20Operating Systems, by Dhananjay Dhamdhere 20
Organization of Directories
• Flat file that is searched linearly inefficient
• Hash table directory efficient search
– Hash with open addressing requires a single table
– (Sometimes) at most two comparisons needed to locate a
file
– Cumbersome to change size, or to delete an entry
• B+ tree directory fast search, efficient add/delete
– m-way search tree where m ≤ 2×d (d: order of tree)
– Balanced tree: fast search
– File information stored in leaf nodes
– Nonleaf nodes of the tree contain index entries
21. Operating Systems, by Dhananjay Dhamdhere 13.21Operating Systems, by Dhananjay Dhamdhere 21
Directory as a B+ tree
22. Operating Systems, by Dhananjay Dhamdhere 13.22Operating Systems, by Dhananjay Dhamdhere 22
Mounting of File Systems
• There can be many file systems in an OS
• Each file system is constituted on a logical disk
– i.e., on a partition of a disk
• Files can be accessed only when file system is
mounted
23. Operating Systems, by Dhananjay Dhamdhere 13.23Operating Systems, by Dhananjay Dhamdhere 23
File Protection
• Users need controlled sharing of files
– Protection info field of the file’s directory entry used to
control access to the file
• Usually, protection info. stored in access control list
– List of (<user_name>,<list_of_access_privileges>)
• User groups can be used to reduce size of list
• In most file systems, privileges are of three kinds:
– Read
– Write
– Execute
24. Operating Systems, by Dhananjay Dhamdhere 13.24Operating Systems, by Dhananjay Dhamdhere 24
Allocation of Disk Space
• Disk space allocation is performed by file system
• Before contiguous memory allocation model
– Led to external fragmentation
• Now noncontiguous memory allocation model
– Issues:
• Managing free disk space
– Use: free list or disk status map (DSM)
• Avoiding excessive disk head movement
– Use: Extents (clusters) or cylinder groups
• Accessing file data
– Depends on approach: linked or indexed
25. Operating Systems, by Dhananjay Dhamdhere 13.25Operating Systems, by Dhananjay Dhamdhere 25
Allocation of Disk Space (continued)
• The DSM has one entry for each disk block
– Entry indicates if block is free or allocated to a file
– Information can be maintained in a single bit
• DSM also called a bit map
• DSM is consulted every time a new disk block has to be
allocated to a file
26. Operating Systems, by Dhananjay Dhamdhere 13.26Operating Systems, by Dhananjay Dhamdhere 26
Linked Allocation
• Each disk block has data, address of next disk block
– Simple to implement
– Low allocation/deallocation overhead
• Supports sequential files quite efficiently
• Files with nonsequential organization cannot be
accessed efficiently
• Reliability is poor (metadata corruption)
27. Operating Systems, by Dhananjay Dhamdhere 13.27Operating Systems, by Dhananjay Dhamdhere 27
Linked Allocation (continued)
• MS-DOS uses a variant of linked allocation that stores
the metadata separately from the file data
• FAT has one element corresponding to every disk block
in the disk
– Penalty: FAT has to be accessed to obtain the address of
the next disk block
• Solution: FAT is held in memory during file processing
28. Operating Systems, by Dhananjay Dhamdhere 13.28Operating Systems, by Dhananjay Dhamdhere 28
Indexed Allocation
• An index (file map table (FMT)) is maintained to note
the addresses of disk blocks allocated to a file
– Simplest form: FMT can be an array of disk block
addresses
29. Operating Systems, by Dhananjay Dhamdhere 13.29Operating Systems, by Dhananjay Dhamdhere 29
Indexed Allocation (continued)
• Other variations:
– Two-level FMT organization: compact, but access to data
blocks is slower
– Hybrid FMT organization: small files of n or fewer data
blocks continue to be accessible efficiently
30. Operating Systems, by Dhananjay Dhamdhere 13.30Operating Systems, by Dhananjay Dhamdhere 30
Performance Issues
• Issues related to use of disk block as allocation unit
– Size of the metadata
– Efficiency of accessing file data
• Both addressed using a larger unit of allocation
– Use the extent as a unit of disk space allocation
• Extent: set of consecutive disk blocks
• Large extents provide better access efficiency
– Problem: more internal fragmentation
– Solution: variable extent sizes
» Size is indicated in metadata
31. Operating Systems, by Dhananjay Dhamdhere 13.31Operating Systems, by Dhananjay Dhamdhere 31
Interface Between File System and
IOCS
• Interface between file system and IOCS consists of
– File map table (FMT)
– Open files table (OFT)
– File control block (FCB)
32. Operating Systems, by Dhananjay Dhamdhere 13.32Operating Systems, by Dhananjay Dhamdhere 32
Interface Between File System and
IOCS (continued)
33. Operating Systems, by Dhananjay Dhamdhere 13.33Operating Systems, by Dhananjay Dhamdhere 33
Interface Between File System and
IOCS (continued)
When alpha is opened:
• File system copies FMTalpha in memory
• Creates fcbalpha in the OFT
• Initializes fields appropriately
• Passes offset in OFT to process, as
internal_idalpha
34. Operating Systems, by Dhananjay Dhamdhere 13.34Operating Systems, by Dhananjay Dhamdhere 34
File Processing
• File System Actions at open
– Sets up the arrangement involving FCB and OFT
• File System Actions during a File Operation
– Performs disk space allocation if necessary
• File System Actions at close
– Updates directories if necessary
35. Operating Systems, by Dhananjay Dhamdhere 13.35
File system actions at open
• Perform path name resolution
– For each component in the path name, locate the correct
directory or file
– Handle path names passing through mount points
• A file should be allocated disk space in its own file system
– Build FCB for the file
• Retain sufficient information to perform a close
operation on the file
– Close may have to update the file’s entry in the parent
directory
– It may cause changes in the parent directory’s entry in
ancestor directories
Operating Systems, by Dhananjay Dhamdhere 35
36. Operating Systems, by Dhananjay Dhamdhere 13.36Operating Systems, by Dhananjay Dhamdhere 36
File System Actions at open
37. Operating Systems, by Dhananjay Dhamdhere 13.37Operating Systems, by Dhananjay Dhamdhere 37
File System Actions during a File
Operation
• Each file operation is translated into a call:
– < opn > (internal_id, record_id,< IO_areaaddr >);
• Internal_id is the internal id of <file_name> returned by the
open call
• Record_id is absent for sequential-access files
– Operation is performed on the next record
• Disk block address obtained from record_id
38. Operating Systems, by Dhananjay Dhamdhere 13.38Operating Systems, by Dhananjay Dhamdhere 38
File System Actions at close
39. Operating Systems, by Dhananjay Dhamdhere 13.39Operating Systems, by Dhananjay Dhamdhere 39
File Sharing Semantics
• File system provides two methods of file sharing for
processes to choose from:
– Sequential sharing
• Only one process accesses a file at a time
• Implemented through lock field in file’s directory entry
– Concurrent sharing
• System creates a separate FCB for each process
• Three sharing modes exist (see Table 13.4)
• File sharing semantics:
– Determine how results of file manipulations performed by
concurrent processes are visible
40. Operating Systems, by Dhananjay Dhamdhere 13.40Operating Systems, by Dhananjay Dhamdhere 40
File Sharing Semantics (continued)
41. Operating Systems, by Dhananjay Dhamdhere 13.41
Single-image Mutable Files
Operating Systems, by Dhananjay Dhamdhere 41
42. Operating Systems, by Dhananjay Dhamdhere 13.42
Multiple-image Mutable Files
Operating Systems, by Dhananjay Dhamdhere 42
43. Operating Systems, by Dhananjay Dhamdhere 13.43Operating Systems, by Dhananjay Dhamdhere 43
File System Reliability
• Degree to which a file system will function correctly
even when faults occur
– E.g., data corruption in disk blocks, system crashes due
to power interruptions
• Two principal aspects are:
– Ensuring correctness of file creation, deletion, and
updates
– Preventing loss of data in files
• Fault: defect in some part of the system
– Occurrence of a fault causes a failure
• Failure: system behavior that is erroneous
– Or that differs from its expected behavior
44. Operating Systems, by Dhananjay Dhamdhere 13.44Operating Systems, by Dhananjay Dhamdhere 44
Loss of File System Consistency
• File system consistency implies correctness of
metadata and correct operation of the file system
• A fault may cause following failures:
– Some data from an open file may be lost
– Part of an open file may become inaccessible
– Contents of two files may get mixed up
• For example, consider addition of a disk block to a file
and a fault during step 3:
1. dj.next := d1.next;
2. d1.next := address (dj);
3. Write d1 to disk.
4. Write dj to disk.
45. Operating Systems, by Dhananjay Dhamdhere 13.45Operating Systems, by Dhananjay Dhamdhere 45
Loss of File System Consistency
(continued)
46. Operating Systems, by Dhananjay Dhamdhere 13.46Operating Systems, by Dhananjay Dhamdhere 46
Approaches to File System Reliability
• Recovery is a classic approach that is activated when a
failure is noticed
• Fault tolerance provides correct operation of file system
at all times
47. Operating Systems, by Dhananjay Dhamdhere 13.47Operating Systems, by Dhananjay Dhamdhere 47
Recovery Techniques
• A backup is a recording of the file system state
– Overhead of creating backups
• When indexed allocation of disk space is used, it is possible
to create an on-disk backup of a file cheaply with technique
that resembles copy-on-write of virtual memory
– Overhead of reprocessing
• Operations performed after lash backup have to be
reprocessed
– Solution: Use a combination of backups and incremental
backups
48. Operating Systems, by Dhananjay Dhamdhere 13.48Operating Systems, by Dhananjay Dhamdhere 48
Recovery Techniques (continued)
49. Operating Systems, by Dhananjay Dhamdhere 13.49Operating Systems, by Dhananjay Dhamdhere 49
Recovery Techniques (continued)
• To reduce overhead of creating backups (when indexed
allocation is used) only the FMT and disk block whose
contents are updated after the backup is created would
be copied
– Conserves both disk space and time
50. Operating Systems, by Dhananjay Dhamdhere 13.50Operating Systems, by Dhananjay Dhamdhere 50
Fault Tolerance Techniques
• File system reliability can be improved by taking two
precautions:
– Preventing loss of data or metadata due to I/O device
malfunction
• Approach: use stable storage
– Preventing inconsistency of metadata due to faults
• Approach: use atomic actions
51. Operating Systems, by Dhananjay Dhamdhere 13.51
• Maintain two copies of data
– Can tolerate one fault in recording of a data item
– Incurs high space and time overhead
– Can’t indicate if copy that survived is old or new
Operating Systems, by Dhananjay Dhamdhere 51
Stable Storage
52. Operating Systems, by Dhananjay Dhamdhere 13.52Operating Systems, by Dhananjay Dhamdhere 52
Atomic Actions
53. Operating Systems, by Dhananjay Dhamdhere 13.53Operating Systems, by Dhananjay Dhamdhere 53
Atomic Actions (continued)
54. Operating Systems, by Dhananjay Dhamdhere 13.54Operating Systems, by Dhananjay Dhamdhere 54
Journaling File Systems
• An unclean shutdown results in loss of data
– Traditional approach: recovery techniques
– Modern approach: use fault tolerance techniques so
system can resume operation quickly after shutdown
• A journaling file system implements fault tolerance by
maintaining a journal
55. Operating Systems, by Dhananjay Dhamdhere 13.55Operating Systems, by Dhananjay Dhamdhere 55
Virtual File System
• A virtual file system (VFS) facilitates simultaneous
operation of several file systems
– It provides generic open, close, read and write
– Invokes operations of a specific file system
56. Operating Systems, by Dhananjay Dhamdhere 13.56Operating Systems, by Dhananjay Dhamdhere 56
Case Studies of File Systems
• Unix File System
– Berkeley Fast File System
• Linux File System
• Solaris File System
• Windows File System
57. Operating Systems, by Dhananjay Dhamdhere 13.57
Unix file system
• File system data structures
– A directory entry contains only the file name
– Inode of a file contains file size, owner id, access
permissions and disk block allocation information
– A file structure contains information about an open file
• It contains current position in file, and pointer to its inode
– A file descriptor points to a file structure
– Indexed disk space allocation uses 3 levels of indirection
• Unix file sharing semantics
– Result of a write performed by a process is immediately
visible to all other processes currently accessing the file
Operating Systems, by Dhananjay Dhamdhere 57
58. Operating Systems, by Dhananjay Dhamdhere 13.58Operating Systems, by Dhananjay Dhamdhere 58
Unix File System
59. Operating Systems, by Dhananjay Dhamdhere 13.59Operating Systems, by Dhananjay Dhamdhere 59
Berkeley Fast File System
• FFS was developed to address the limitations of the file
system s5fs
• Supports some enhancements like long file names and
use of symbolic links
• Includes several innovations concerning disk block
allocation and disk access:
– Permits use of large disk blocks (up to 8KB)
– Uses cylinder groups to reduce disk head movement
– Tries to minimize rotational latency when reading
sequential files
60. Operating Systems, by Dhananjay Dhamdhere 13.60Operating Systems, by Dhananjay Dhamdhere 60
Linux File System
• Linux provides a virtual file system (VFS)
– Supports a common file model that resembles the Unix
file model
• Standard file system is ext2
– Variety of file locks for process synchronization
• Advisory locks, mandatory locks, leases
– Uses notion of a block group
• ext3 incorporates journaling
61. Operating Systems, by Dhananjay Dhamdhere 13.61Operating Systems, by Dhananjay Dhamdhere 61
Solaris File System
• Unix-like file access permissions
– Three access control pairs in each access control list
• Convenience and flexibility in file processing, through a
virtual file system
• Record-level locking provided to implement fine-grained
synchronization between processes
– Nonblocked I/O mode to avoid indefinite waits
• Asynchronous I/O mode: a process is not blocked for its
I/O operation to complete
• Provides file integrity
62. Operating Systems, by Dhananjay Dhamdhere 13.62Operating Systems, by Dhananjay Dhamdhere 62
Windows File System
• NTFS is designed for servers and workstations
– Key feature: recoverability of the file system
• Notion of partition and volumes (single and spanned);
volumes have a master file table (MFT)
• Directory organized as a B+ tree
• Hard links and symbolic links (called junctions)
• Special techniques for sparse files and data
compression
• Metadata modifications are atomic transactions
• Write behind capabilities of journaling file systems
• Vista has many new features for recovery
63. Operating Systems, by Dhananjay Dhamdhere 13.63Operating Systems, by Dhananjay Dhamdhere 63
Performance of File Systems
64. Operating Systems, by Dhananjay Dhamdhere 13.64Operating Systems, by Dhananjay Dhamdhere 64
Log-Structured File System
• Caching reduces disk head movement during reads
• Log-structured file systems reduce head movement
through a radically different file organization
– Writes file data of all files in a single sequential structure
that resembles a journal (log file)
• Little head movement during write operations
65. Operating Systems, by Dhananjay Dhamdhere 13.65Operating Systems, by Dhananjay Dhamdhere 65
Summary
• Files are structured or unstructured (byte stream)
• File system provides:
– File organizations (sequential, direct, indexed)
– Directories for grouping of related files logically
– Sharing and protection of files
– Disk space allocation, typically indexed
• File map table (FMT) stores allocation information
• File control block (FCB) stores information about a file’s
processing
• Atomic actions can be used for fault tolerance
• Journaling file systems provide reliability modes
• VFS permits several file systems to be in operation