System Programming
Punjab College Kotli
Affiliated with
MIRPUR UNIVERSITY OF SCIENCE AND
TECHNOLOGY
Department of CS&IT
System Programming
Course Code:MCS-241
BSCS- 7th Semester
Lecture No. 01
Topic: Overview
Teacher:
Orain Malik
MSCS
COURSE DESCRIPTION
Purpose of this course is to learn about
Operating system, Device Drivers,
Purpose 2…Windows System Programming
for Intel386 Architecture: 16-bit Vs 32-bit
Programming
Purpose 3… File formats:
COURSE OBJECTIVES
The purpose of the course is to consolidate the
programming skills from the previous core courses and
system level programming. Students will be expected to:
Use of Scripting Languages (UNIX environment) to write
system software (device drivers).
To write multi-process and multi-threaded programs
Learn the new tools like IDEs, debuggers, profilers, and
source control to help them write good and
maintainable code.
How programs run in user space and how the interact
with the OS.
COURSE SCHEDULE
Till Mid Term
Topic 1… Topic 2… Upto so on…
After Mid Term
Topic 17… Topic 18… Upto so on…
COURSE TEXTBOOKS
1. Recommended Textbook. Advanced
Programming in the UNIX Environment,
Addison-Wesley, 1992.
2. The UNIX Programming Environment, B.
Kernighan & R. Pike Prentice-Hall, 1984,
GRADING POLICY
Quizzes [10%]
Assignments [10%]
Mid Term [30%]
Final Exam [50%]
Contents
Introduction
Overview of System Programming
Description of System Programming
Application Programming
System Programming
Three Layer Model
Vendor Of Three Layer Architecture
Diagrams of 3-Tier Architecture
Core Layer
Distribution Layer
Access Layer
Benefits of Cisco Three-Layer hierarchical model
Introduction
What is system
A computer system consists of hardware components that have been
carefully chosen so that they work well together and software components
or programs that run in the computer
Examples
The main software component is itself an operating system that manages
and provides services to other programs that can be run in the computer.
A filing system is a group of files organized with a plan (for example,
alphabetical by customer).
All of nature and the universe can be said to be a system. We've coined a
word, ecosystem, for the systems on Earth that affect life systems.
Introduction
What is programming
Instruct the computer”: this basically means that you provide the
computer a set of instructions that are written in a language that the
computer can understand. The instructions could be of various types.
Example
Adding 2 numbers,
Rounding off a number, etc.
Overview of System Programming
Definition
System programming involves designing and writing computer programs
that allow the computer hardware to interface with the programmer and
the user, leading to the effective execution of application software on the
computer system.
Examples
The operating system and firmware, programming tools such as
compilers, assemblers, I/O routines, interpreters, scheduler, loaders and
linkers as well as the runtime libraries of the computer programming
languages.
Description of System Programming
System programming is an essential and important
foundation in any computer’s application development, and
always evolving to accommodate changes in the computer
hardware. This kind of programming requires some level of
hardware knowledge and is machine dependent; the system
programmer must therefore know the intended hardware on
which the software is required to operate.
Application Programming
Application Programming
An application program (sometimes shortened to application) is any program
designed to perform a specific function directly for the user or, in some cases, for
another application program.
Overview
It is the set of programs that view computer as a tool for solving a particular problem.
Application programming is used to build application software which includes
software.
Application software is a software that are been used by the end user.
Application Programming is used to write High level instructions.
Examples
Library management System, calculator, web browsers etc.
System Programming
System Programming
System programming involves designing and writing computer programs that
allow the computer hardware to interface with the programmer and the user,
leading to execution of application software on the computer system.
Overview
Is the collection of components and art or designing of a given program.
Programming is done using assembly language which interacts with hardware.
System software that executes the application software.
System programming is used to write low level instructions.
Examples
Loader, Linker, Compiler etc.
Three Layer Model
What is a 3-Tier (Layer) Architecture
A 3-tier architecture is a type of software architecture which is composed of three
“tiers” or “layers” of logical computing. They are often used in applications as a
specific type of client- server system.
Overview
3-tier architectures provide many benefits for production and development
environments by modularizing the user interface, business logic, and data storage
layers. Doing so gives greater flexibility to development teams by allowing them
to update a specific part of an application independently of the other parts. This
added flexibility can improve overall time-to-market and decrease development
cycle times by giving development teams the ability to replace or upgrade
independent tiers without affecting the other parts of the system.
Vendor Of Three Layer Architecture
Cisco (Computer Information System Company) suggests a Three−Tier
(Three Layer) hierarchical network model, that consists of three layers:
the Core layer, the Distribution layer, and the Access layer. Cisco Three-
Layer network model is the preferred approach to network design.
Diagrams of 3-Tier Architecture
Diagrams of 3-Tier Architecture /
Core Layer
Core Layer consists of biggest, fastest, and most expensive
routers with the highest model numbers and Core Layer is
considered as the back bone of networks. Core Layer routers
are used to merge geographically separated networks. The
Core Layer routers move information on the network as fast
as possible. The switches operating at core layer switches
packets as fast as possible.
Distribution Layer
The Distribution Layer is located between the access and
core layers. The purpose of this layer is to provide boundary
definition by implementing access lists and other filters.
Therefore the Distribution Layer defines policy for the
network. Distribution Layer include high-end layer 3
switches. Distribution Layer ensures that packets are properly
routed between subnets and VLANs in your enterprise.
Access Layer
Access layer includes acces switches which are connected to
the end devices (Computers, Printers, Servers etc). Access
layer switches ensures that packets are delivered to the end
devices.
Benefits of Cisco Three-Layer
hierarchical model
The main benefits of Cisco Three-Layer hierarchical model is that it helps to design,
deploy and maintain a scalable, trustworthy, cost effective hierarchical internetwork.
Better Performance
Cisco Three Layer Network Model allows in creating high performance networks
Better management & troubleshooting
Cisco Three Layer Network Model allows better network management and isolate causes of
network trouble.
Better Filter/Policy creation and application
Cisco Three Layer Network Model allows better filter/policy creation application.
Better Scalability
Cisco Three Layer Network Model allows us to efficiently accommodate future growth.
Better Redundancy
Cisco Three Layer Network Model provides better redundancy. Multiple links across
multiple devices provides better redundancy. If one switch is down, we have another
alternate path to reach the destination.
,
THE END