Quiz 3: Software & OS Flashcards
Software
all the non-hardware components (program code) of a digital
device. (System software, development software, and Application software)
System Software Types
Operating Systems
for controlling a digital device’s internal operations
e.g. Windows, macOS, iOS, Linux, Android, UNIX, and Chrome OS.
Device Drivers
For digital devices to communicate with each other .
e.g. Printer Drivers and Video Drivers
Utilities
For file management, security, communications, backup, network
management, and system monitoring like antivirus
Development Software Types
Programming Languages
For writing programs C Basic, Java, Fortran, C++, C#, Scheme, and Objective-C
Scripting Languages
For writing scripts, creating Web pages, and querying databases
HTML, JavaScript (client-server communication), PHP(Drupal, WordPress),
Python, Ruby, and SQL
Quality Assurance Tools
For testing software Debuggers, Load Testing, Security Testing
Application Software Types
Professional Tools
For automating professional activities at work and in the home office
Desktop Publishing, Graphic Design, and Special Effects
Educational Software
For students and teachers engaged in the process of learning in classrooms and at a distance (D2L, Blackboard, Drupal)
Tutorials, Courseware, and Learning Management Systems (Looop)
Personal Finance Software
For managing bank accounts, preparing taxes, retirement planning, and
other financial matters (Quicken)
Tax Preparation, Banking Apps, and Loan Calculators (TurboTax)
Business Software
For automating core business functions
Accounting (Quickbook, ERP), Inventory Management (ERP,ProjectManager, Ms Project), Billing Databases, Point of Sale
(Squirrel Systems POS, Global Payment), Sales force Management and Estimating
Productivity Software
For automating tasks formerly carried out with legacy technologies, such as pen and paper, typewriters, calculators, and slide Projectors
Word Processors, Spreadsheets, Presentations, Calendars, and
Contact Managers (CRM)
Distribution: MD5 & Checksum, and Hash definition
Hash is a unique representation of the input data (an ID)
Checksum:
A checksum is a specific type of hash value or code that is generated from data, often for the purpose of detecting errors in data transmission or storage. It’s usually a simpler form of hash.
Here’s how it works:
1. You download a file and its associated checksum.
2. You run the same checksum algorithm on the downloaded file to generate a new fingerprint.
3. You compare the new fingerprint with the one you downloaded. If they match, it means the file hasn’t been tampered with during the download. If they don’t match, there may be a problem with the file, and you should download it again.
MD5 (Message Digest 5):
MD5 is a specific checksum algorithm. It’s like a more advanced fingerprint for your data. It takes the contents of a file and processes it through a complex mathematical formula to create a unique MD5 hash.
This hash is a fixed length and looks like a random string of letters and numbers.
Allows you to generate CRC32, MD5, SHA-1, SHA-256,
SHA-384 and SHA-512 hashes
Here’s how it works:
1. You download a file.
2. You run an MD5 algorithm on the downloaded file to generate an MD5 hash.
3. You compare this MD5 hash with the one provided by the source. If they match, it means the file is most likely intact and hasn’t been tampered with during the download.
Operating System Services (8)
Program development:
The OS provides a variety of facilities and services such as editor and debuggers, to assist the programmer in creating programs.
Program execution:
A number of steps need to be performed to execute a program.
Access I/O devices:
Each I/O device requires its own peculiar set of instructions or control signals of operation.
Error detection and response:
The OS constantly checks for possible errors
The OS takes an appropriate action to ensure correct and consistent computing
Files system manipulation
Resource management:
The OS manages all kinds of resources using schedulers.
CPU scheduling algorithms are used for better utilization of CPU.
Protection:
refers to a mechanism or a way to control the access of programs, processes, or users to the resources defined by a computer system.
The OS ensures that all access to system resources is controlled.
The OS ensures that external I/O devices are protected from invalid access attempts.
The OS provides authentication features for each user by means of passwords.
Communication:
Two processes often require data to be transferred between them
Both the processes can be on one computer or on different computers, but are
connected through a computer network
Communication may be implemented by two methods, either by shared memory or by message passing.
Key Interfaces (3)
Instruction set architecture (ISA):
Machine language instructions that a computer can follow
Application programs and utilities may access user ISA.
Each CPU has its own specific ISA, which determines which instructions it can understand and perform.
OS has access to system ISA to deal with managing system resources.
Application binary interface (ABI): Machine-language API.
Application programming interface (API)
What is the name of the first PC?
IBM 5150
Electronic Numerical Integrator and
Computer (ENIAC)
One of the earliest electronic general-purpose computers (1940s)
ENIAC was an enormous machine, occupying a large room. It consisted of 17,468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors, and around 5 million hand-soldered joints.
ENIAC Could:
Discriminate the sign of a number
Compare quantities for equality
ENIAC stored a maximum of twenty
10-digit decimal numbersAdd, subtract, multiply, divide
Extract square roots
ENIAC did not have an Operating System
Programs were “loaded” by plugging tubes and relays together using cables
To program it, you had to physically rewire it. Changing the program was a labor-intensive process.
Single-User Computers
Hardware: Expensive; Humans: Cheap
One user at a time on console
Interacting with as program runs
Computer executes one function at a time
No overlap: computation & I/O
User must be at console to debug
Problems of Early System
Scheduling
Most installations used a hardcopy sign-up sheet to reserve computer time.
Time allocations could run short or long, resulting in wasted computer time
Setup time
A considerable amount of time was spent on setting up the program to run.
User must be at console to debug
Multiple users=inefficient use of machine
Uniprogramming
Uniprogramming operating systems allow the computer to work on just one program or task at a time. When you open a program, like a web browser or a word processor, the computer dedicates all of its attention to that program until you close it or it’s done with its task.
While this approach is straightforward, it has some drawbacks. If the program takes a long time to complete, you might have to wait a while before you can use another program.
Batch System: IBM 370
Instead of processing tasks or jobs one at a time, it groups them together into a “batch.” These tasks could be things like running programs, processing data, or performing calculations. Then, the computer processes this batch of tasks automatically and sequentially, without needing constant user intervention. It’s like loading all your tasks into the computer’s “dishwasher” and letting it work through them on its own.
Simple Batch Systems Processing
(a) Programmers bring cards to 1401;
(b) 1401 reads batch of jobs onto tape;
(c) operator carries input tape to 7094;
(d) 7094 does computing;
(e) operator carries output tape to 1401;
(f) 1401 prints output.
Multiprogramming
A computer architecture and operating system concept that allows multiple programs (or processes) to run concurrently on a computer system. It is a technique designed to maximize the utilization of a computer’s CPU by keeping it busy and productive even when a single program is not using it fully.
OS manages interactions:
- Which jobs to run (schedule)
- Protects program’s memory from others
- Decides which to resume when CPU available
There must be enough memory to hold the OS (resident monitor) and one user program
When one job needs to wait for I/O, the processor can switch to the other job, which is likely not waiting for I/O