0% found this document useful (0 votes)
12 views3 pages

Os

Uploaded by

jiwetech1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Os

Uploaded by

jiwetech1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

1.

Introduction to Operating Systems (OS)

● Definition: An Operating System (OS) is system software that acts as an intermediary


between users/applications and computer hardware, managing resources and tasks to
make the computer functional.
● Core Functions:
● Resource Allocation: Manages CPU, memory, and I/O resources.
● Task Scheduling: Allocates time to different processes for efficient operation.
● User Interface: Provides a user interface (GUI or CLI) for interaction.
● Types of Operating Systems:
● Batch Operating System: Processes batches of jobs without user interaction.
● Time-Sharing OS: Allows multiple users to share system resources simultaneously.
● Distributed OS: Manages multiple computers as a single system.
● Real-Time OS: Provides immediate processing for time-sensitive applications.
● Embedded OS: Operates devices with specific functions (e.g., IoT devices).

Here are the student-friendly notes covering each of the learning outcomes for the
**Introduction to Operating Systems** course:

---

Learning Outcome 1: Types of Operating System


- **Batch OS**: Processes a group (or "batch") of jobs without user interaction. Best for tasks
requiring repetitive processing (e.g., payroll).
- **Time-Sharing OS**: Allows multiple users to share system resources at the same time.
Examples include UNIX and Windows server environments.
- **Distributed OS**: Manages multiple computers as a single system, sharing resources and
workloads. Common in large-scale systems and cloud computing.
- **Real-Time OS (RTOS)**: Processes data immediately, ideal for time-sensitive applications
like medical devices and automotive systems.
- **Embedded OS**: Specialized OS found in devices like microwaves and smart thermostats,
where functions are limited and specific.

---

Learning Outcome 2: Functions and Facilities of Operating Systems


- **Process Management**: Manages the creation, execution, and termination of processes.
Key to multitasking and keeping multiple apps running smoothly.
- **Memory Management**: Allocates and manages primary memory (RAM) to ensure efficient
operation and multitasking capabilities.
- **File System Management**: Organizes and manages files on storage devices, keeping
data structured and accessible.
- **I/O Management**: Manages input and output devices (keyboard, printer) to ensure
smooth communication with the system.
- **User Interface (UI)**: Provides an environment (CLI or GUI) that enables users to interact
with the system.

---
Learning Outcome 3: Selecting an Operating System for Applications**
- **Evaluate Requirements**: Look at application and system requirements to choose the best
OS. Consider factors like:
- **Real-Time Needs**: If immediate responses are needed, choose an RTOS.
- **Task Handling**: For high multitasking, Time-Sharing OS or Distributed OS may be ideal.
- **Compatibility**: Consider hardware limitations or requirements, like memory and CPU
power.
- **Examples**:
- Use Linux or Windows for web servers.
- Use Android or iOS for mobile applications.
- Use an RTOS for embedded systems in devices like washing machines.
hizi muendelezo
---
apLearning Outcome 4: Process Management, Memory, and OS Prerequisites
- **Process Management**:
- Each running program is a "process."
- Processes go through stages: created (new), ready, running, waiting, and terminated.
- **Memory Management**:
- OS manages primary memory allocation.
- Shared memory allows different processes to access the same memory for communication.
- Techniques like **paging** (dividing memory into pages) and **segmentation** (dividing
logically) help optimize memory.
- **Prerequisites**:
- Hardware: Minimum RAM, CPU type, and storage requirements.
- Software: Compatibility with programming environments and required applications.

---

Learning Outcome 5: Key Challenges in Operating Systems


- **Deadlock**: Occurs when processes are stuck waiting on each other, creating a standstill.
- **Solution**: Deadlock can be avoided by implementing resource allocation strategies like
Banker's Algorithm.
- **Starvation**: A process is continuously overlooked for resources.
- **Solution**: Priority scheduling with limits can help ensure that all processes get resources
in time.
- **Scheduling**: Determines which process gets CPU time. Common scheduling methods
include:
- **First-Come, First-Serve (FCFS)**: Simple but can lead to delays.
- **Shortest Job First (SJF)**: Reduces wait time but may cause starvation.
- **Round Robin**: Allocates time slices to each process, promoting fairness.
- **Fragmentation**:
- **Internal Fragmentation**: Unused space within allocated memory.
- **External Fragmentation**: Unallocated memory gaps are scattered, preventing large
memory allocations.
- **Solution**: Compaction and paging.
- **Thrashing**: Excessive paging that reduces performance.
- **Solution**: Adjusting memory allocation using techniques like the Working Set Model.

---

Learning Outcome 6: Management of I/O Devices, Secondary Storage, and Network


Resources
- **I/O Device Management**:
- Manages hardware resources like printers, scanners, and storage.
- Device drivers facilitate communication between OS and hardware.
- **Secondary Storage Management**:
- Organizes and manages data storage, using methods like file allocation tables.
- Disk scheduling (e.g., First-Come, First-Serve or Shortest Seek Time First) optimizes data
retrieval times.
- **Network Resource Management**:
- Ensures that data is shared securely across networks.
- Manages network protocols and services to allow computers to share resources efficiently.

---

Learning Outcome 7: Writing Simple Shell, System, and Application Programs


- **Shell Programming**:
- Shell scripts automate tasks using commands (e.g., Bash).
- Examples: Automating file backups, managing user accounts.
- **System Programming**:
- Write low-level code to interact directly with the OS (using system calls for file handling,
memory management).
- Example: Creating a simple program that checks and manages system resources.
- **Application Programming with Threads**:
- Threads are small units of a process that run independently, enabling multitasking.
- Example: Building a program with a user interface that responds to clicks while processing
data in the background.

---

You might also like