Hi there!

I am a student studying computer science.

시스템 프로그래밍

시스템 프로그래밍 1장 - OS

만능성구 2020. 5. 5. 00:21
728x90

Operating System 운영체제란?

Application program과 컴퓨터 Hardware를 중재하는 역할을 하는 프로그램

 

OS의 목적

- 컴퓨터 시스템을 편하게 사용한다.

- 컴퓨터 하드웨어의 자원을 효율적으로 관리

 

OS의 주요 기능 Top 4

-Multi-user environment

여러 유저가 동시에 사용할 수 있는 환경

-Process and Scheduling

여러 프로그램을 동시에 실행시킬 수 있도록

-User space and Kernel space

여러 개 프로그램을 독립적으로 작동할 수 있도록 Address space관리, User level과 Kernel Level을 별도로 관리

-Basic and Advanced I/O

컴퓨터 시스템의 주요 자원이 주변장치(I/O)를 통로를 제공


OS -> Linux

- histroy …

- Philosophy …

- Advantages & Weakness 장점과 단점

수많은 개발자들이 많이 동참한다.

사용자 버전이 있다.

-빠른 버전 업그레이드로 안정화 되지 못한다.

-Distribution

Debian 비상업용

Fedora 상업용

Various other distributions

- Linux archive : 커널은

- Development

- Standardization 배포, 개발, 안정화


Computer System Overview

기본적인 컴퓨터 시스템은 Hardware가 존재 그 중 중요한 것은 CPU, Memory, I/O Devices가 있다.

 

Hardware 위의 OS는 Hardware를 잘 관리하는 시스템 sortware이고, OS위에 Application programing이 실행된다.

z.B) GUI 프로그램, System utility를 사용하는 시스템 프로그램

 

System Programing은 System의 resouse를 사용해서 원하는 기능을 제공한다.

System Call이 운영체제에 그 기능을 요청


Layered Linux Structure

 

 

1

 

2

 

3

 

 

4

 

5

 

6

 

OS의 종류 중 하나인 Linux의 구조이다.

-OS에서 kernel은 핵심역활을 담당한다.

2 Users는 system-call을 wrapping할수 있는 libaray를 가지고 있어서 shell, compiler, interface를 통해서  커널에 요청 을 전달한다.

3 유저에게 다양한 영역의 kernel을 이용할 수 있게 위쪽으로 system-call 인터페이스를 제공한다.

6 하드웨어에 대한 kernel interface를 아래쪽으로 제공해서 Hardware driver device라든지 여러가지 그런 software를 통해서 하드웨어 제어

kernel의 역활 top5

Process management

- CPU scheduling

Memory management

- page replacement

- demand paging virtual memeory

File system management

- swapping block I/po system        

- disk and tape drivers

Device management

- signals terminal handling

- character I/O system terminal drivers

Network management

 

kernel의 핵심기능을 user level에서 프로그래머가 사용할 수 있도록 제공해주는 interface를 system-call이라고 한다.

application은 이러한 system-call을 이용하여 직접 접근 가능하고 system-call을 다시 wrapping한 shell, library-loutines을 통해서 접근할 수 있다.

이렇게 system utilty를 사용하는 프로그램이다.

728x90