0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
98 Ansichten2 Seiten
1. The project involves implementing a modified malloc function that allows freeing memory from any point within the allocated region, not just the start. This requires a more sophisticated data structure to track memory regions.
2. The project involves researching timing synchronization in distributed systems, including common protocols and how timing is handled in programming languages and operating systems.
3. The project involves building a user-level library that implements a basic file system interface within an application, linking to a "disk" layer for storage.
1. The project involves implementing a modified malloc function that allows freeing memory from any point within the allocated region, not just the start. This requires a more sophisticated data structure to track memory regions.
2. The project involves researching timing synchronization in distributed systems, including common protocols and how timing is handled in programming languages and operating systems.
3. The project involves building a user-level library that implements a basic file system interface within an application, linking to a "disk" layer for storage.
1. The project involves implementing a modified malloc function that allows freeing memory from any point within the allocated region, not just the start. This requires a more sophisticated data structure to track memory regions.
2. The project involves researching timing synchronization in distributed systems, including common protocols and how timing is handled in programming languages and operating systems.
3. The project involves building a user-level library that implements a basic file system interface within an application, linking to a "disk" layer for storage.
Project Title Project Specifications Additional Remarks
* implement a memory allocator for the heap of a user-level process * Malloc - functions similar to traditional malloc, but free can free memory from any point in the allocated memory implementations of Mem_Alloc(int size) and Mem_Free(void *ptr) are identical, except the http://pages.cs.wisc. pointer passed to Mem_Free does not have to have been previously returned by 1 A "Better" Malloc edu/~dusseau/Classes/CS537- Mem_Alloc; instead, ptr can point to any valid range of memory returned by Mem_Alloc. F07/Projects/P3/index.html will need to have a more sophisticated data structure than the traditional malloc to track the regions of memory allocated by Mem_Alloc. Specifically, this data structure will allow you to efficiently map any address to the corresponding memory object or to determine that there is no corresponding object. Timing is a major issue with the implementation of a distributed system. Each computer in a distributed system must have a concept of time relative to the other computers in the system and an efficient means to convey this time to the system in order to provide synchronization Lectures on distributed systems 2 Timing Synchronization in Distributed Systems between the processes. There are many factors involved with maintaining time consistency Clock Synchronization by in a distributed system. Investigate the implementation of timing throughout a distributed Paul Krzyzanowski system and the various protocols available to implement synchronizing. This could include researching the timing behavior of commonly used programming languages and system. * build a user-level library, libFS, that implements a good portion of a file system * Your file system will be built inside of a library that applications can link with to access files http://pages.cs.wisc. and directories. Your library will in turn link with a layer that implements a "disk" 3 A "Slower" File System edu/~dusseau/Classes/CS537- * Create a complete File Access API supporting functions for file creation, file open, file read, F07/Projects/P4/index.html write, seek, close etc. * Same functions for directories the core problem facing peer-to-peer Systems is locating documents in a decentralized Building peer-to-peer systems with chord, a distributed http://ieeexplore.ieee.org/document/990065 4 network and propose Chord, a distributed lookup primitive. Chord provides an efficient lookup service http://nms.lcs.mit.edu/papers/chord.pdf method of locating documents while placing few constraints on the applications that use it. The aim is to design a bitcoin system. Unlike BitCoin, we will not use crypto- http://www.cse.iitd.ac. 5 Distributed Ledger graphic primitives, or other hashing mechanisms in/~mcs162658/cop701/A1.pdf Implementation of the Google File System, a scalable distributed file system for large http://www.cs.cornell. 6 Google FIle System/Map Reduce distributed data-intensive applications. Possible file system interface extensions. edu/courses/cs614/2004sp/papers/gfs.pdf Implementation of Inode Based File System (Simple file The goals of this project are to implement a simple file system on top of a virtual disk and http://www.cs.ucsb. 7 system) to understand implementation details of file systems edu/~chris/teaching/cs170/projects/proj5.html https://github.com/libfuse/libfuse https: Implement mounting Google Drive as a File-System using Design a user space C/C++ application that links against libfuse and maps the appropriate 8 //developers.google.com/drive/v3/web/about- libfuse (File System in User Space) kernel calls to HTTP requests to Google Drive API and vice-versa. sdk *system calls in Linux related to creating new processes: fork, vfork, execve, and clone. * Instrument the kernel so that we can write a user-level program that will print counts of the https://homes.cs.washington. 9 Add a new system call number of times each of these four system calls has been invoked (by any process on the edu/~zahorjan/homepage/Tools/LinuxProjects/ system) SysCall/proj1.html * to be able to reset these statistics periodically This allocator is based on a set of object-caching primitives that reduce the cost of allocating complex objects by retaining their state between uses. These same primitives prove equally The Slab Allocator: An Object-Caching Kernel Memory http://srl.cs.jhu.edu/courses/600. 10 effective for managing stateless memory (e.g. data pages and temporary buffers) because Allocator 418/SlabAllocator.pdf they are space-efficient and fast. Slab allocator works along with Buddy allocation system. Can you implement one on any old Unix kernel with only support for buddy allocator? * The high-level task is to write a C or C++ program that walks over an entire file sub-tree, starting with the current working directory, and determines which files (if any) are duplicates https://homes.cs.washington. 11 Finding duplicate files in the file system of each other. edu/~zahorjan/homepage/Tools/LinuxProjects/ * Use of concurrent multiple threads doing this; again with concurrency control to handle MD5/proj2.html locking efficiently Case study - (Drinking/Dining philosopher, Reader Writers Case study and implementation of various traditional concurrency problems - Dining http://www.cse.chalmers.se/~tsigas/papers/phil. 12 problem, Mobile Philosopher) philosopher, reader-writer problem etc. and more involved understanding and pdf implementation of the drinking philosopher, mobile philosopher problems. * Implementing RAID5 over a number of files being seen as disks, to increase fault tolerance and performance. http://www.cs.cmu. 13 RAID 5 implementation over an array of virtual disks * Create a file, then create your bare bone file system in that. edu/~garth/RAIDpaper/Patterson88.pdf * Then use these number of files as disks to implement RAID 5 * first task is to design, implement, and test an abstraction called a thread pool. Your thread pool implementation should consist of two files: threadpool.h and threadpool.c. https://homes.cs.washington. 14 A Multithreaded Server Implementation shouldnt contain BUSYWAITING or DEADLOCKS or RACE CONDITIONS edu/~zahorjan/homepage/Tools/LinuxProjects/ * Use your thread pool to turn the single-threaded server into a multithreaded server. MTServer/proj2.html * Finally test the performance of your server BLITZ is a collection of software, designed to streamline the process of learning about, and experimenting with, operating system kernel code. By using BLITZ students are able to http://web.cecs.pdx. study, in detail, the low-level operating system code that interacts with the hardware, as well 15 Modifying the Blitz Operating System edu/~walpole/class/cs333/spring2012/home. as design, code and test their own modifications to the operating system. The project html comprises of multiple components :- Understanding the OS code, performing threading and interprocess communication, kernel resource management and user processes. Implement a distributed key-value store that runs across multiple nodes. Data storage is durable, i.e., the system does not lose data if a single node fails. You will use replication for fault tolerance. The key-value store is to be built optimizing for read throughput. Accessing data 16 Build a Distributed Key-Value Store https://inst.eecs.berkeley.edu/~cs162/fa12/ concurrently from multiple replicas of the data will be used to improve performance. Operations on the store should be atomic. i.e., either the operation should succeed completely or fail altogether without any side effects. You will use the Two-Phase Commit protocol to ensure atomic operations. Stock Nachos has an incomplete thread system. Your job is to complete it, and then use it to solve several synchronization problems. The second phase of Nachos is to support Nachos Operating System - Threading and Multiprogramming 17 multiprogramming and system calls. In a real operating system, the kernel not only uses its https://inst.eecs.berkeley.edu/~cs162/fa12/ implementation procedures internally, but allows user-level programs to access some of its routines them via system calls. https://ocw.mit.edu/courses/electrical- Add snapshots to a file system, so that a user can look at the file system as it appeared at engineering-and-computer-science/6-828- 18 Snapshots to a file system various points in the past. You'll probably want to use some kind of copy-on-write for disk operating-system-engineering-fall- storage to keep space consumption down. 2012/projects/ https://ocw.mit.edu/courses/electrical- Allow processes to migrate from one machine to another over the network. You'll need to do engineering-and-computer-science/6-828- 19 Migration of processes over network to other machines something about the various pieces of a process's state, such as file descriptors in xv6. operating-system-engineering-fall- 2012/projects/
Docker: The Complete Guide to the Most Widely Used Virtualization Technology. Create Containers and Deploy them to Production Safely and Securely.: Docker & Kubernetes, #1
Software Containers: The Complete Guide to Virtualization Technology. Create, Use and Deploy Scalable Software with Docker and Kubernetes. Includes Docker and Kubernetes.