About this ebook
Related to Computer Science I Essentials
Related ebooks
Introduction to Computer Fundamentals Rating: 4 out of 5 stars4/5Learn Operating System in 24 Hours Rating: 0 out of 5 stars0 ratingsOperating Systems DeMYSTiFieD Rating: 0 out of 5 stars0 ratingsExploring Computer Systems Rating: 5 out of 5 stars5/5Understanding Computers, Smartphones and the Internet Rating: 5 out of 5 stars5/5Fundamentals of Programming: Using Python Rating: 5 out of 5 stars5/5Computer Programming Using C Rating: 0 out of 5 stars0 ratingsSchaum's Outline of Principles of Computer Science Rating: 0 out of 5 stars0 ratingsBasics of Computer Rating: 0 out of 5 stars0 ratingsLearn All about Evolution of Computers Rating: 0 out of 5 stars0 ratingsThe Absolute Beginner's Guide to Binary, Hex, Bits, and Bytes! How to Master Your Computer's Love Language Rating: 5 out of 5 stars5/5C Programming Language, A Step By Step Beginner's Guide To Learn C Programming In 7 Days. Rating: 4 out of 5 stars4/5COMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsThe Self-Taught Computer Scientist: The Beginner's Guide to Data Structures & Algorithms Rating: 0 out of 5 stars0 ratingsC language Programming: Simple, Short, and Straightforward Way of Learning C Programming Rating: 3 out of 5 stars3/5Introduction to Programming Languages Rating: 4 out of 5 stars4/5Computer Programming In C Language Rating: 4 out of 5 stars4/5Thinking Beyond Coding Rating: 5 out of 5 stars5/5Beginning Programming All-In-One Desk Reference For Dummies Rating: 4 out of 5 stars4/5Visualizing Data Structures Rating: 0 out of 5 stars0 ratingsComputer Science II Essentials Rating: 0 out of 5 stars0 ratingsThe Art of Code: Exploring the World of Programming Languages Rating: 0 out of 5 stars0 ratingsProgramming Problems: Advanced Algorithms Rating: 4 out of 5 stars4/5C Programming Language Rating: 4 out of 5 stars4/5Algorithms For Dummies Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Writing Computer Code: Learn the Language of Computers! Rating: 5 out of 5 stars5/5TCP/IP for Everyone Rating: 4 out of 5 stars4/5
Computers For You
Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 4 out of 5 stars4/5Algorithms to Live By: The Computer Science of Human Decisions Rating: 4 out of 5 stars4/5ITIL Foundation Essentials ITIL 4 Edition - The ultimate revision guide Rating: 5 out of 5 stars5/5SDL Trados Studio – A Practical Guide Rating: 5 out of 5 stars5/5Build a WordPress Website From Scratch 2024: WordPress 2024 Rating: 0 out of 5 stars0 ratingsStorytelling with Data: Let's Practice! Rating: 4 out of 5 stars4/5ITIL® 4 Essentials: Your essential guide for the ITIL 4 Foundation exam and beyond Rating: 5 out of 5 stars5/5Get Into UX: A foolproof guide to getting your first user experience job Rating: 4 out of 5 stars4/5Mastering Ubuntu Server Rating: 5 out of 5 stars5/5Mastering Microsoft Excel 2016: How to Master Microsoft Excel 2016 in 30 days Rating: 5 out of 5 stars5/5Learn SAP MM in 24 Hours Rating: 0 out of 5 stars0 ratingsPython Projects for Everyone Rating: 0 out of 5 stars0 ratingsSQL Queries: 200+ Queries to Challenge you. Rating: 5 out of 5 stars5/5Still Room for Humans: Career Planning in an AI World Rating: 0 out of 5 stars0 ratingsLearning Articulate Storyline Rating: 0 out of 5 stars0 ratingsMicrosoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsiCloud for Beginners: A Ridiculously Simple Guide to Online Storage Rating: 0 out of 5 stars0 ratingsCompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsMaster Microsoft Word 2016: How to Master Microsoft Word 2016 in 30 days Rating: 5 out of 5 stars5/5From Data to Decisions: A Practical Guide to Implementing Modern Decision Intelligence Rating: 0 out of 5 stars0 ratingsHands-On Motion Graphics with Adobe After Effects CC: Develop your skills as a visual effects and motion graphics artist Rating: 0 out of 5 stars0 ratingsC# 10.0 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsUX/UI Design Playbook Rating: 4 out of 5 stars4/5
Reviews for Computer Science I Essentials
7 ratings0 reviews
Book preview
Computer Science I Essentials - Randall Raus
CHAPTER 1
Fundamental Computer Concepts
There are many types of computers, from laptops, which use batteries and require only a minimum amount of power, to supercomputers, which are capable of billions of calculations a second and use so much power that their processors need to be continuously cooled in a bath of special fluids. Computer types also range from personal computers, which are designed for a single user, to powerful mainframes, which serve hundreds of users simultaneously.
However, there are certain concepts that all computers have in common. In this chapter we will define and discuss those concepts.
1.1 Layers of a Computer System
A computer has three layers. The first layer is the hardware or the computer itself. It consists of the central processing unit, random access memory, and peripheral devices. Peripheral devices include disk drives, monitors, printers, and anything else that might be connected to a computer.
The second layer is the system software. There are three kinds of system software. The first kind is utilities, which allow users to do things like format a disk, sort a file, or set the system clock. The second kind of system software is language programs like compilers and assemblers which convert programs written by users to machine language. Since a machine language is usually unique to a type of computer (Macintosh programs, for example, won’t usually run on IBM-compatible PCs), language programs generally come with a computer.
The third and most important kind of system software is the operating system. An operating system comprises those system programs that are not utilities or language programs. A good portion of an operating system’s programs or subprograms is memory resident and acts as an interface with the hardware that allows users to run other system programs and application programs.
Operating systems have what is called a kernel. The kernel is that part of the operating system which has to be very fast and efficient. Kernels are often written in assembly language, which is the closest language to machine language. Kernels contain machine language instructions which perform tasks like servicing interrupts, which are interruptions of the program that is currently running. Updating the system clock every so many thousandths of a second is an example of an operating system servicing an interrupt.
In a multiprogramming environment (at least two programs running simultaneously), the kernel contains a scheduler which allocates a time slice to each program that is running. If a program is waiting for input/output from a peripheral device such as a disk drive, the scheduler changes the programs status to wait.
When the disk drive’s interface signals by means of an interrupt that it has the data the program requested, the operating system services the interrupt by transferring the data from the disk drive’s interface to the location in memory requested by the program. It then changes the status of the program to ready,
so it will run on its next time slice. Then the operating system returns control to the program that was running so it can finish its time slice.
In a multiprogramming environment the operating system acts as a resource allocator. When a program is not able to run because it requests a file on disk that is being used by another program, a printer is not available, or the operating system is not able to allocate enough memory for the program to run, the scheduler changes the program’s status to blocked.
When the resource becomes available the status is changed to ready.
The operating system performs tasks that are common to every program, such as input/output, so application programs don’t have to reinvent the wheel.
Input/Output is nearly always interrupt-driven, with the operating system handling I/O by servicing interrupts. One of the reasons so many users can use a computer in a time-sharing system is because most programs spend a lot of time waiting for I/O, especially waiting for users to type on keyboards; people are very slow compared to computers. The few programs that aren’t in a wait
state are allocated a substantial amount of execution time.
The third layer of a computer system is the application software. Application software can be anything from a word processor to a payroll program to a scientific program running on a supercomputer. The overwhelming majority of all software run on computers is application software.
1.2 Basic Terms and Definitions
Serial Access Memory—A tape drive is a serial access memory device, which must be accessed serially by winding and unwinding a spool of magnetic tape. Tape drives are not used nearly as much as they used to be, but are still handy for backing up disk drives.
Direct Access Memory—A disk drive, which may be better thought of as semi-random access, is a direct access memory device. The movable head goes directly to the track containing the sector to be accessed, but then waits while the disk spins to the sector to be accessed.
Random Access Memory—The main memory of computers is random access memory or RAM and is very fast compared to disk drives. Data may be accessed at random at any memory location. RAM is constructed from solid state electronic devices and is made up of many thousands of tiny transistors and other electronic components.
Read-Only Memory—Read-only memory