Notes, summaries, assignments, exams, and problems for Computers

Sort by
Subject
Level

Operating System Concepts: Hardware Interaction and Scheduling

Posted by Anonymous and classified in Computers

Written on in English with a size of 1.45 MB

Operating System Fundamentals

The Operating System (OS) serves several critical roles:

  • It acts as a resource manager, controlling access to the hardware.
  • It provides an abstraction layer, allowing user processes to call functions that access hardware via system calls.

User Mode vs. Supervisor Mode (Kernel Mode)

The CPU enforces separation between user processes and the OS kernel:

  • User Mode: Prohibits privileged instructions.
  • Kernel Mode (Supervisor Mode): Allows access to all hardware and privileged operations.

Program Status Word (PSW)

The PSW is a special register holding vital information, such as:

  • Access privilege mode.
  • Runtime execution conditions (e.g., condition codes).
  • Program Counter (PC) and Stack Pointer (SP).

Simplified Interrupt Handling Flow

  1. A
... Continue reading "Operating System Concepts: Hardware Interaction and Scheduling" »

Processor and Memory Interface: CPU Datapath, Registers & ALU

Posted by Anonymous and classified in Computers

Written on in English with a size of 967.85 KB

Processor & Memory Interface

Processor & Memory Interface: The maximum size of the memory that can be used in any computer is determined by the addressing scheme. For example, a computer that generates 16-bit addresses is capable of addressing up to 216 = 65,536 (≈ 64K) memory locations. Machines whose instructions generate 32-bit addresses can utilize a memory that contains up to 232 = 4,294,967,296 (≈ 4G) locations, whereas machines with 64-bit addresses can access up to 264 ≈ 1.84 × 1019 locations. The number of locations represents the size of the address space of the computer.

The connection between the processor and its memory consists of address, data, and control lines. The processor uses the address lines to specify the... Continue reading "Processor and Memory Interface: CPU Datapath, Registers & ALU" »

Java Programming: Classes, Objects, and Key Concepts

Classified in Computers

Written on in English with a size of 5.28 KB

Classes (الصفوف)

  • A class consists of variables (fields) and methods.
  • Variables are data members of a class.
  • Methods are functions that define the class's behavior.

Variables (المتغيرات)

  • Declared with a data type and a name.
  • Can be public or private.
  • Examples: int age, String name.

Methods (الأساليب)

  • Functions that perform specific tasks.
  • Can have parameters and return values.
  • Types:
    • Void methods: Don't return a value.
    • Return type methods: Return a value.
    • Static methods: Can be called without creating an object.
    • Instance methods: Require an object to be called.
    • Abstract methods: Declared without a body; used in abstract classes.
    • Overloaded methods: Multiple methods with the same name but different parameters.

Constructors (البناؤون)

... Continue reading "Java Programming: Classes, Objects, and Key Concepts" »

Deadlock Prevention and Banker's Algorithm in C

Posted by Anonymous and classified in Computers

Written on in English with a size of 2.93 KB

Dining Philosophers Deadlock Prevention

The following implementation addresses the Dining Philosophers problem using POSIX threads and semaphores. To prevent deadlock, the logic ensures that the last philosopher picks up the forks in a different order than the others.

#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
#include <stdlib.h>

#define N 5

sem_t forkS[N];

void *philosopher(void *n)
{
    int id = *(int *)n;
    int left = id;
    int right = (id + 1) % N;

    while (1)
    {
        printf("P%d Thinking\n", id);

        fflush(stdout); // Force print immediately
        sleep(1);

        // Deadlock prevention: last philosopher picks right fork first
        if (id ==
... Continue reading "Deadlock Prevention and Banker's Algorithm in C" »

Vector Databases & RAG for Semantic Search and Retrieval

Posted by Anonymous and classified in Computers

Written on in English with a size of 206.28 KB

1. Vector Databases — High-Dimensional Embeddings

Store and search high-dimensional vector embeddings. Used in semantic search, similarity search, and RAG pipelines.

Indexing Techniques

  • Flat Index (Brute Force) → accurate but slow.
  • Approximate Nearest Neighbor (ANN) → fast and scalable.
    • Algorithms: HNSW, FAISS, Annoy.
    • f3Q1622KC84AAAAASUVORK5CYII= 8pk5+AsHqPHAAAAAElFTkSuQmCC

3. Retrieval-Augmented Generation (RAG)

Overview

Enhances LLM output by integrating retrieved external knowledge.

  • Reduces hallucination and outdated responses.
  • Improves factual grounding.

RAG Workflow

  1. Indexing: Convert raw data (PDF, HTML, Word) → embeddings.
  2. Retrieval: Retrieve relevant document chunks using similarity search.
  3. Generation: LLM synthesizes results with the query to produce the final answer.

Retrieval Types

TypeDescriptionExample
Sparse
... Continue reading "Vector Databases & RAG for Semantic Search and Retrieval" »

jQuery Functions and HTML Form Management

Posted by Anonymous and classified in Computers

Written on in English with a size of 15.61 KB

jQuery Selectors

jQuery selectors are used to select and access HTML elements in a webpage. They help in finding elements so that different operations like hiding, showing, styling, and event handling can be performed easily. Selectors in jQuery are similar to CSS selectors and start with the dollar sign $().

Basic Syntax

$(selector).action();

  • $: Defines jQuery
  • selector: Selects HTML elements
  • action(): Performs operations on selected elements

Example: $("p").hide(); (This hides all paragraph elements.)

Types of jQuery Selectors

1. Element Selector

This selector selects elements based on the tag name.

Syntax: $("tagname")

Example: $("h1").hide(); (It hides all <h1> elements.)

  • Selects all elements of the same type
  • Easy to use

2. ID Selector

This selector... Continue reading "jQuery Functions and HTML Form Management" »

DBMS vs RDBMS: Key Differences and Core Concepts

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.15 KB

What is a DBMS?

A Database Management System (DBMS) is software that enables users to define, create, maintain, and control access to a database. It acts as an interface between users and a database, allowing users to interact with data without needing to know how it is stored internally. It serves as a bridge between data and application programs/users.

Popular DBMS Examples

  • MySQL
  • Oracle Database
  • Microsoft SQL Server
  • MongoDB

Types of DBMS

  • Hierarchical DBMS: Data organized like a tree.
  • Network DBMS: Data linked in a network structure.
  • Relational DBMS (RDBMS): Data stored in tables (most common).
  • NoSQL DBMS: Used for unstructured or big data.

DBMS Architecture

The 3-Level Architecture is essential for database design:

  • Internal Level: How data is physically
... Continue reading "DBMS vs RDBMS: Key Differences and Core Concepts" »

Essential Array Algorithms: Span, Second Largest, Floor, Ceil, and Bitonic Search

Posted by Anonymous and classified in Computers

Written on in English with a size of 4.59 KB

1. Span of Array

Problem Statement:
Find the span of an array (the difference between the maximum and minimum elements).

Example:
Input: [3, 4, 7, 10, 1]
Output: 9 (since 10 - 1 = 9)

Approach:

  • Initialize max = -∞ and min = +∞.
  • Traverse the array once:
    • Update max if the current element is greater than max.
    • Update min if the current element is less than min.
  • Return max - min.

Time Complexity: O(n)
Space Complexity: O(1)

2. Second Largest Element

Problem Statement:
Find the second largest element in an array without sorting it.

Example:
Input: [20, 42, 99, 10, 88, 6]
Output: 88

Approach:

  • Initialize two variables: max1 (largest) and max2 (second largest).
  • Compare the first two elements to set initial values for max1 and max2.
  • From the third element onward, iterate:
... Continue reading "Essential Array Algorithms: Span, Second Largest, Floor, Ceil, and Bitonic Search" »

Programming Language Fundamentals: Core Concepts

Posted by Anonymous and classified in Computers

Written on in English with a size of 7.28 KB


1. Why Study Programming Language Concepts?

  • Expressiveness: Leverage diverse language features

  • Selection: Match language to task (e.g., LISP for AI, PHP for web)

  • Learning: Foundations ease uptake of new languages

  • Efficiency: Choose constructs (recursion vs. iteration) for performance

  • Maintenance: Better code reuse and understanding


2. Programming Domains and Typical Languages

DomainFocusLanguage Example
ScientificFloating-point computationsFortran
BusinessReports, decimals, textCOBOL
Artificial IntelligenceSymbolic processing, linked listsLISP/Prolog
SystemsEfficiency, low-level controlC
WebMarkup, scripting, general-purposeHTML/JS/PHP/Java

3. Language Categories

  • Imperative: Variables + assignment + iteration (C, Java, Python, Perl)

  • Functional: Computation

... Continue reading "Programming Language Fundamentals: Core Concepts" »

Programming Fundamentals: Loops, Structures, Functions & File Handling

Classified in Computers

Written on in English with a size of 22.07 KB

When to Use For Loops vs. While Loops

A for loop and a while loop are both used for iteration in programming, but they serve different purposes and are used in different scenarios. Here are three key points to consider when deciding which loop to use:

  • Known vs. Unknown Iterations

    For Loop: Use a for loop when the number of iterations is known beforehand. For example, iterating over a fixed range of numbers or elements in a collection (like an array or list).

    While Loop: Use a while loop when the number of iterations is not known in advance and depends on a condition being met. This is useful for scenarios where you need to continue looping until a specific condition changes (e.g., reading input until a user decides to stop).

  • Control Structure Differences

    For

... Continue reading "Programming Fundamentals: Loops, Structures, Functions & File Handling" »