Home/ Majors directory/Computer Systems and Networks/Development of Virtual Mashines
Development of Virtual Mashines
Major: Computer Systems and Networks
Code of subject: 7.123.01.O.010
Credits: 4.00
Department: Electronic Computing Machines
Lecturer: PhD, associate professor Botchkaryov Oleksy Yuriyovich
Semester: 2 семестр
Mode of study: денна
Завдання: General competences:
ZK2. Ability to abstract thinking, analysis and synthesis.
ZK4. Ability to search, process and analyze information from various sources.
Professional competences:
SK3. Ability to design computer systems and networks taking into account objectives, constraints, technical, economic and legal aspects.
SK5. Ability to build architecture and create system and application software of computer systems and networks.
SK10. Ability to identify, classify and describe the operation of software and technical tools, computer systems, networks and their components.
Learning outcomes: Learning outcomes according to the educational program:
PH3. Build and research models of computer systems and networks, evaluate their adequacy, determine applicability limits.
PH5. Develop and implement projects in the field of computer engineering and related interdisciplinary projects taking into account engineering, social, economic, legal and other aspects.
PH8. Apply knowledge of technical characteristics, design features, purpose and rules of operation of software and technical means of computer systems and networks to solve complex problems of computer engineering and related problems.
The results of studying the discipline:
- know the principles of creating and using virtual machines, hypervisors and container virtualization software;
- know how to use the means of system and process virtualization of computer systems and computing environments;
- know the methods and means of building virtual machines at the level of system and application software;
- have practical skills in working with applied software interfaces and libraries of system and process virtualization;
- be able to design and implement various schemes of system and process virtualization using software interfaces and virtual machine development platforms;
- have practical skills in creating, debugging and using virtual machines.
Required prior and related subjects: Prerequisites: Computer architecture, System programming.
Corequisites: Research and design of software systems.
Summary of the subject: The "Designing of Virtual Machines" discipline aims to provide students with a clear and systematic understanding of the means of system and process virtualization of computer systems and computing environments, to provide basic knowledge about the principles of building virtual machines at the level of system and application software; provide skills in creating and using virtual machines. As a result of mastering the study material of the discipline, students should know the general principles of building and using means of system and process virtualization of computer systems and computing environments, know the basic algorithms and methods of designing hardware and software components of virtual system and process machines, the internal mechanisms of the functioning of these machines, methods verification of their work, to understand the conceptual bases of functioning of system and application software of virtual machines, to be able to work with modern virtual machines and means of hardware and software virtualization. To master this discipline, knowledge of the following disciplines is necessary: ??"Computer Architecture", "System Programming".
Опис: 1. Virtual machines. Computer architectures and the history of virtualization. Basics of virtual machines. The main tasks of creating and using virtual machines. Classification of virtual machines and virtualization tools. Types of virtual machines. Process (application) virtual machines. System virtual machines.
2. Emulation: interpretation and binary translation. Basics of interpretation. String interpretation. Transcoding and direct threading. Interpretation. Interpretation of the CISC architecture. Binary broadcast. Code study and dynamic translation. Virtual machine performance.
3. Process virtual machines. Implementation of virtual machines. Compatibility. Projection of states. Memory architecture emulation. Emulation of exceptional situations. Emulation of operating systems. Code cache management. System environment.
4. Architectures of language virtual machines. Java Virtual Machine. LLVM low-level virtual machine and modern compilation systems. Functional and logical virtual machines (LISP, Prolog). API interfaces of virtual platforms. Microsoft Common Language Runtime (.NET) infrastructure.
5. Design of hardware and software virtual machines. Memory projections and multiple registers. Self-modifying and self-referential codes. Code cache support. Implementation of precision traps. Input/output. Principles and mechanisms for virtual machine software and hardware. Transmeta Crusoe processor.
6. Classic system virtual machines. Key concepts. Virtualization of resources: processor, memory, input-output subsystem. Intel hardware virtualization technologies.
7. Real virtualization. Virtualizers CroossOver, VirtualBox, Virtual PC. and VMware Workstation. Xen and KVM hypervisors. Hypervisors for Microsoft Hyper-V and VMware ESX servers. Cloud virtualization technology.
Assessment methods and criteria: Written reports on laboratory work, the verbal questioning (40%). Final assessment (60 %, control method, exam): written-verbal form (60%).
Критерії оцінювання результатів навчання: The semester grade is issued on the condition that the student completes the study plan. The semester grade is formed from the results of current monitoring of laboratory work and semester testing. The result of the semester testing is the product of the result of the semester test in the virtual learning environment and the coefficient of the lecture tests in the virtual learning environment. Maximum score in points - 100. Current control - 40. Examination control: written component - 50, verbal component - 10.
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) is awarded for a high level of knowledge (some inaccuracies are allowed) of the educational material of the component contained in the main and additional recommended literary sources, the ability to analyze the phenomena being studied in their interrelationship and development, clearly, succinctly, logically, consistently answer the questions, the ability to apply theoretical provisions when solving practical problems; 87–71 points – (“good”) is awarded for a generally correct understanding of the educational material of the component, including calculations, reasoned answers to the questions posed, which, however, contain certain (insignificant) shortcomings, for the ability to apply theoretical provisions when solving practical tasks; 70 – 50 points – (“satisfactory”) awarded for weak knowledge of the component’s educational material, inaccurate or poorly reasoned answers, with a violation of the sequence of presentation, for weak application of theoretical provisions when solving practical problems; 49-26 points - ("not certified" with the possibility of retaking the semester control) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to apply theoretical provisions when solving practical problems; 25-00 points - ("unsatisfactory" with mandatory re-study) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to navigate when solving practical problems, ignorance of the main fundamental provisions.
Recommended books: 1. Matthew Portnoy, Virtualization Essentials, 2nd Edition, Sybex, 2016. – 336 p.
2. Shashank Mohan Jain, Linux Containers and Virtualization: A Kernel Perspective, Apress, 2020. – 164 p.
3. Edouard Bugnion, Jason Nieh, Dan Tsafrir, Hardware and Software Support for Virtualization, ? Morgan & Claypool Publishers, 2017. – 208 p.
4. Xiao-Feng Li, Advanced Design and Implementation of Virtual Machines, CRC Press, 2016. – 464 p.
5. Min-Yih Hsu, LLVM Techniques, Tips, and Best Practices, Packt Publishing, 2021. – 370 p.
6. Kai Nacke, Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++, Packt Publishing, 2021. – 392 p.
7. Tim Lindholm, Frank Yellin. The Java Virtual Machine Specification, Java SE 7 Edition, 3rd Edition, Addison-Wesley Professional, 2013. - 608 p.
8. W. David Ashley, Foundations of Libvirt Development: How to Set Up and Maintain a Virtual Machine Environment with Python, Apress, 2019. – 408 p.
9. SK Singh, Cloud Computing and AWS Introduction: Docker, AWS Cloud Platform, Serverless Computing, Virtualization, Virtual Machine, Hypervisor, 2021 – 237 p.
10. Sachin Seth, Understanding Java Virtual Machine, Alpha Science International, 2013. – 318 p.
11. Vedran Dakic, Humble Devassy Chirammal, Prasad Mukhedkar, Anil Vettathu, Mastering KVM Virtualization: Design expert data center virtualization solutions with the power of Linux KVM, 2nd Edition, Packt Publishing, 2020. – 686 p.
12. Ted Simpson, Jason Novak, Hands on Virtual Computing, 2nd Edition, Cengage Learning, 2017. – 480 p.
10. Tuna Peyo, VMware Workstation Player: A Beginner's Guide: Your first steps into virtualization, 2017. – 190 p.
13. Robin Catling, The VirtualBox Networking Primer: Connecting and Configuring Virtual Machines, Proactivity Press, 2020. – 134 p.
14. Alan Hohn, The Book of Kubernetes: A Complete Guide to Container Orchestration, No Starch Press, 2022. – 384 p.
Уніфікований додаток: Lviv Polytechnic National University ensures the realization of the right of persons with disabilities to obtain higher education. Inclusive educational services are provided by the Service of accessibility to learning opportunities "Without restrictions", the purpose of which is to provide permanent individual support for the educational process of students with disabilities and chronic diseases. An important tool for the implementation of the inclusive educational policy at the University is the Program for improving the qualifications of scientific and pedagogical workers and educational and support staff in the field of social inclusion and inclusive education. Contact at:
St. Karpinsky, 2/4, 1st floor, room 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: The policy regarding the academic integrity of the participants of the educational process is formed on the basis of compliance with the principles of academic integrity, taking into account the norms "Regulations on academic integrity at the Lviv Polytechnic National University" (approved by the academic council of the university on June 20, 2017, protocol No. 35).