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

Sort by
Subject
Level

Mastering Process Synchronization: Critical Sections and Semaphores

Posted by Anonymous and classified in Computers

Written on in English with a size of 7.56 KB

The Critical Section Problem

In a multi-threaded or multi-process system, shared data can easily become corrupted if multiple processes try to modify it at the same time. This issue is known as a race condition.

To prevent this, we identify the section of code where shared resources are accessed as the Critical Section. The goal is to ensure that only one process executes in its critical section at any given moment.

do {
    [ Entry Section ]   <-- Request permission to enter
        Critical Section   <-- Manipulate shared data
    [ Exit Section ]    <-- Release permission
        Remainder Section  <-- Non-shared code
} while (true);

To be a valid solution, any mechanism managing the critical section must satisfy three strict requirements:... Continue reading "Mastering Process Synchronization: Critical Sections and Semaphores" »

C Programming: Numerical Algorithms and Control Flow

Posted by Anonymous and classified in Computers

Written on in English with a size of 18.07 KB

Unit 3: Core C Programming Concepts

Extracting Digits of a Number

Extracting digits of a number is a fundamental programming task used in various computational problems, such as reversing a number, checking for palindromes, or performing digit-based calculations. There are two main approaches: right-to-left extraction and left-to-right extraction.

Right-to-Left Extraction

In right-to-left extraction, the modulus operator (%) is used to obtain the last digit of the number, while integer division (/) removes the last digit after processing. For example, for the number 1234:

  • 1234 % 10 gives 4.
  • 1234 / 10 gives 123.

This process is repeated until the number becomes zero, allowing each digit to be handled individually.

Left-to-Right Extraction

Left-to-right... Continue reading "C Programming: Numerical Algorithms and Control Flow" »

Understanding Email Systems and Cybersecurity Threats

Posted by Anonymous and classified in Computers

Written on in English with a size of 10.97 KB

Electronic Mail (Email) Fundamentals

Email is a method of exchanging digital messages from an author to one or more recipients. 📧

Introduction to Email

Email works similarly to physical mail, but electronically. It uses the internet to deliver messages almost instantaneously to an address on a global network. Key protocols like Simple Mail Transfer Protocol (SMTP) handle sending mail, while Post Office Protocol (POP3) or Internet Message Access Protocol (IMAP) handle receiving it.

Advantages of Email

  • Speed: Messages are delivered almost instantly, even across vast distances.
  • Cost-Effective: It's virtually free compared to traditional postal services or long-distance calls.
  • Accessibility: You can send and receive emails from almost any internet-
... Continue reading "Understanding Email Systems and Cybersecurity Threats" »

Core Concepts in AI, Machine Learning, and Industrial Automation Systems

Posted by Anonymous and classified in Computers

Written on in English with a size of 422.57 KB

Linear Regression Fundamentals

In regression, a set of records containing X and Y values is used to learn a function. This learned function can then be used to predict Y from an unknown X. In regression, we aim to find the value of Y, so a function is required which predicts Y given X. Y is continuous in the case of regression.

Here, Y is called the criterion variable and X is called the predictor variable. There are many types of functions or models which can be used for regression. The linear function is the simplest type of function. Here, X may be a single feature or multiple features representing the problem.

P37C38P9ECJqqvMXffAAAAAElFTkSuQmCC

Applications of Linear Regression in AI

  • Predictive Analysis: Forecasting sales, stock prices, or house prices based on historical data.
... Continue reading "Core Concepts in AI, Machine Learning, and Industrial Automation Systems" »

Programming Fundamentals and OOP Cheat Sheet

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.49 KB

MEGA CHEAT SHEET

1. Programming Fundamentals

Software Development Life Cycle (SDLC)

Steps: Requirements → Specifications → Design → Development → Integration → Testing/Debugging → Installation → Maintenance.

Mnemonic: Really Smart Developers In Tech Install Machines.

Algorithms

  • Control Structures:
    • Sequence (In Order)
    • Selection (If/Else)
    • Iteration (Loops)
  • Design Strategies: Divide and Conquer, Backtracking.
  • Representations: Pseudocode, Flowcharts, Structure Charts, Abstraction Diagrams.
  • Checking: Identify Input/Output, Purpose, Desk Check with data.

Programming Paradigms

  • Imperative: Step-by-step instructions (e.g., Python).
  • OOP: Objects and classes (e.g., Java, Python).
  • Logic: Facts and rules (e.g., Prolog).
  • Functional: Pure functions, no state
... Continue reading "Programming Fundamentals and OOP Cheat Sheet" »

8051 Microcontroller Architecture and Pin Configuration

Posted by Anonymous and classified in Computers

Written on in English with a size of 1.86 MB

Architecture of 8051

1. CPU (Central Processing Unit)

  • Controls all operations of the microcontroller.
  • Performs arithmetic and logical operations.
  • Executes program instructions.

2. RAM (Random Access Memory)

  • Temporary storage for data.
  • Stores variables and intermediate results.
  • Data is lost when power is turned off.

3. ROM (Read Only Memory)

  • Stores the program permanently.
  • Retains data even when power is off.

4. Timers/Counters

  • Used to generate time delays.
  • Can count external events.
  • 8051 has Timer 0 and Timer 1.

5. Ports

  • Used for input and output operations.
  • 8051 has 4 ports (P0, P1, P2, P3).
  • Each port is 8-bit.

6. Serial Communication

  • Used to exchange data with other devices.
  • Uses TXD (Transmit) and RXD (Receive) pins.
  • Supports serial data transmission and reception.
... Continue reading "8051 Microcontroller Architecture and Pin Configuration" »

Dijkstra's Algorithm in C: Code & Explanation

Classified in Computers

Written on in English with a size of 3.5 KB

Dijkstra's Algorithm in C

This code implements Dijkstra's algorithm to find the shortest path from a source vertex to all other vertices in a graph represented as an adjacency matrix. The program reads graph data from an input.txt file and writes the results to an output.txt file.

Code Implementation


#include <stdio.h>
#include <limits.h>
#include <stdbool.h>

#define MAX_VERTICES 100

// Function to find the vertex with minimum distance
int minDistance(int dist[], bool visited[], int vertices) {
    int min = INT_MAX, min_index;

    for (int v = 0; v < vertices; v++)
        if (!visited[v] && dist[v] <= min) {
            min = dist[v];
            min_index = v;
        }

    return min_index;
}

// Dijkstra'
... Continue reading "Dijkstra's Algorithm in C: Code & Explanation" »

ECSE 427 Operating Systems Final Exam Cheat Sheet

Posted by Anonymous and classified in Computers

Written on in English with a size of 4.38 KB

ECSE 427 Final Exam Cheat Sheet

Process Management

  • Fork: Each fork() creates a new process (2^n processes after n forks).
  • Fork Output: for(i=0; i<3; i++) fork(); printf("hello\n"); prints "hello" 8 times (2^3).
  • Child/Parent Sharing: Only code, static data, and disk content are shared; heap, stack, and registers are copied.
  • Process vs. Thread Switch: Process switching is more expensive due to address space switches, TLB flushes, and cache pollution.
  • Multithreading Benefits: Even on single-core CPUs, threads are useful for blocking I/O operations.
  • Trap Steps:
    • Hardware: Save state → Change to kernel mode → Jump to trap handler.
    • OS: Identify cause → Handle trap → Return to user mode.

Memory & Paging

  • Address Translation (Virtual → Physical)
... Continue reading "ECSE 427 Operating Systems Final Exam Cheat Sheet" »

Cryptography Fundamentals: DES, AES, RSA and Security

Posted by Anonymous and classified in Computers

Written on in English with a size of 6.12 KB

1. DES Structure

DES (Data Encryption Standard) is a symmetric key block cipher used for data encryption. It encrypts 64-bit plaintext using a 56-bit secret key.

DES uses a 16-round Feistel structure. The plaintext first undergoes initial permutation and is divided into left and right halves. In every round, the right half is processed using a round function and XORed with the left half. After 16 rounds, a final permutation is performed to generate the ciphertext.

Features

  • 64-bit block size
  • 56-bit key
  • 16 rounds
  • Uses Feistel structure

Advantages

  • Simple implementation
  • Efficient hardware encryption

Disadvantages

  • Weak against brute-force attacks

2. AES Algorithm

AES (Advanced Encryption Standard) is a symmetric encryption algorithm used to secure digital communication.... Continue reading "Cryptography Fundamentals: DES, AES, RSA and Security" »

Essential Shell Scripting Examples for Linux Automation

Posted by Anonymous and classified in Computers

Written on in English with a size of 3.37 KB

1. Armstrong Number Checker

Write a shell script to check whether a given number is an Armstrong number.

echo "Enter a number"
read c
x=$c
sum=0
while [ $x -gt 0 ]
do
r=$(( $x % 10 ))
n=$(( $r * $r * $r ))
sum=$(( $sum + $n ))
x=$(( $x / 10 ))
done
if [ $sum -eq $c ]
then
echo "This is an Armstrong number"
else
echo "This is not an Armstrong number"
fi

2. Calculate Area of a Circle

Write a shell script to find the area of a circle.

echo "Enter radius"
read r
echo "Area is"
echo "3.14 * $r * $r" | bc

3. Average of Command Line Arguments

Write a shell script to find the average of numbers entered as command line arguments.

sum=0
for i in $*
do
sum=$((sum + i))
done
echo "Summation of $# numbers is: $sum"
N=$#
avg=$(echo "$sum / $N" | bc -l)
echo "Average = $avg"
... Continue reading "Essential Shell Scripting Examples for Linux Automation" »