본문 바로가기

KNU_study/운영체제

운영체제(1) OS

728x90
반응형

 

 

0. OS

 

OS란 resource manager이다. 

OS는 system을 control한다. 

-> 하드웨어를 컨트롤하는 detail한 부분을 숨기고, 프로그래머가 하드웨어까지 컨트롤하지 않게끔 하는 목적

-> 컴퓨터 시스템의 4가지 분류 : 하드웨어, OS, 응용 프로그램, 사용자

 

 

 

1. 폰 노이만 아키텍처

 

모든 메모리를 저장 후, 하나씩 빼서 사용한다. 

https://m.blog.naver.com/with_msip/221981730449

 

 

 

2. resource sharing, resource abstraction [OS의 역할]

 

(1) resource sharing 

    여러 사용자가 하나의 자원을 함께 사용하는 것, 효율적인 자원 사용이 가능

    ex : 여러 사용자가 하나의 컴퓨터를 공유, 하나의 인터넷 연결을 공유하는 상황

(2) resource abstraction 

    사용자가 자원을 사용하는 방식을 단순화하여, 사용자가 자원을 더 쉽게 사용하게끔 한다. 

    ex : 프로그래밍에서 클래스나 함수 등의 추상화 개념 -> 더 쉬운 코드 작성

 

 

3. OS as resource manager

 

-> process : 현재 실행 중인 프로그램. 수행시키는 순간 프로세스가 된다. 

-> resource : process를 실행하기 위해 필요한 모든 것, ex : 메모리, dist 공간, CPU, I/O 장치 등

(1) OS는 자원의 사용을 편리하게 해준다. 

(2) Time mutliplexing of resources :  하나의 자원을 여러 사용자가 번갈아 가며 사용한다.

    ex : 여러 사용자가 하나의 CPU를 공유하는 경우, CPU를 일정 시간 동안 여러 사용자가 번갈아 사용

           여러 사용자가 하나의 자원을 공유하면서도, 각각 독립적으로 자원 사용 가능

    Space multiplexing of resources : 자원을 물리적으로 분할하여 여러 사용자가 공유한다. 

    ex : 여러 사용자가 하나의 storage를 공유하는 경우, 이를 물리적으로 분할하여 각 사용자에게 독립적인

           공간을 할당한다. 이를 통해 각 사용자는 자신만의 독립적인 공간에서 자원 사용 가능 

-> CPU : time multiplexed

    Memory : space and time multiplexed

    Hard disk : space multiplexed

(3) Scheduling : 프로세스 or 작업의 실행 순서를 결정, 시스템 자원을 효율적으로 할당한다. 

    Time sharing 스케줄링 : 여러 프로세스가 동시에 실행될 때, CPU가 각각에게 공평하게 시간을 할당, 실행

    -> 다수의 사용자가 컴퓨터를 동시에 사용 가능. 응답 시간이 비교적 빠름. 프로세스의 우선순위 설정 가능

    Real-time 스케줄링 : 시스템에서 발생하는 이벤트들을 처리하기 위한 스케줄링

    -> 정확한 시간 제약이 있음. 이벤트가 발생하는 즉시 처리가 되어야 함, 작업 처리 시간이 보장되어야 함.

        일정한 우선 순위가 부여됨. 응답 시간이 매우 빨라야 함, 이벤트의 정확성과 신뢰성이 보장되어야 함.

 

 

4. Abstract Machines

 

(동시에 여러 사용자가 쓰고 있는데, 이 computer는 내가 독점하고 있다고 착각하는 결과를 낳음.)

프로그램이 실행되는 가상의 컴퓨터 시스템. 

하드웨어와 소프트웨어 사이의 중간 단계로, [하드웨어]와 [프로그램] 사이의 인터페이스 역할

운영체제에서 제공하는 이것은 하드웨어와는 다른 프로그램 실행 환경이므로

-> 운영체제가 프로그램의 실행을 관리, 제어할 수 있다. 

 

 

5. Multiprogramming(Multitasking)

 

실행 가능한 프로세스들이 CPU를 공유하여 사용하는 것을 말한다. 

(하나의 컴퓨터에서 여러 개의 프로그램을 동시에 실행하는 기능)

(1) Time sharing : 각 프로세스에게 CPU 시간을 할당하여 순서대로 실행한다. 

(2) Multiprogramming : 여러 개의 프로세스를 메모리에 로드하여 준비 상태로 대기시킨다. 

(3) Multithreading : 하나의 프로세스 내에서 여러 개 thread를 생성, 병렬로 실행한다. 

-> thread : parent process의 자원을 share하면서, 독자적으로 동작한다.

-> 사용 이유 : CPU의 10~30%만 memory 계산에 이용된다. 70% 이상은 I/O에 소요된다. ex: 인간의 입력

    I/O에 사용되는 시간 동안 다른 일을 할 수 있으므로 스케줄링을 통해 CPU를 '자동적'으로 공유한다. 

 

 

6. OS Strategies

 

-> Batch processing : 여러 개의 작업을 모아놓고, 어느 정도 모이면 일괄적으로 직렬 처리

-> Timesharing : 여러 사용자들이 하나의 컴퓨터 시스템을 동시에 사용, 활용도 상승

-> Personal computer & workstation, Process control & real-time, Network, Distributed

(**) Time multiplexing of CPU : [CPU의 시간]을 분할하여 각 사용자에게 할당하는 방식

(**) Time sharing : 각 사용자에게 [일정 시간] 동안 CPU를 할당하는 방식

 

 

7. OS의 기능 1 : Process management

 

process : 실행 중인 프로그램, 시스템 내의 작업 단위

OS는 프로세스와 스레드 간의 CPU를 다중화하여 동시성을 제공한다. 

-> program은 passive entity, process는 active entity이다. 

-> 프로세스는 작업을 수행하기 위한 resource가 필요하다. 또한 프로세스 밑에 thread가 존재한다. 

    프로세스 종료 시, (재사용 가능한) resource를 회수해야 한다. 

-> single threaded process : 다음 명령의 위치를 지정하는 PC 1개만 존재한다. 

    multi threaded process : thread 당 하나의 PC(program counter)가 존재한다. 

-> user, sys 프로세스 작성 및 삭제, 프로세스 일시중단 재개, 동기화 매커니즘, 데드락 처리 메커니즘

    deadlock : 멀티프로세스 or 멀티스레드 환경에서 둘 이상이 서로 상대방의 작업이 끝나길 기다리면서 아무것도 진행하지 못하는 상태

 

 

8. OS의 기능 2 : Memory management

 

프로그램을 실행하기 위한 모든(혹은 부분적으로) 명령어, data가 메모리에 있어야 한다. 

OS는 메모리에 무엇이 있고, 언제 동안 있는지를 결정한다. 

-> CPU 활용률을 높이고, 사용자에 대한 컴퓨터 응답을 최적화하기 위한 목적이다. 

-> 필요에 따라 메모리 공간 할당 및 할당 삭제를 수행한다. 

-> 한정된 메모리 속에서, 앞으로 얼마나 메모리를 요구할 지 모르므로 이런 것들을 관리한다. 

 

 

9. OS의 기능 3 : File - system management

 

File : Abstracts physical properties to logical storage unit

-> file, directories 작성 및 삭제 및 이들을 조작하기 위한 기본 요소를 가짐

-> OS는 파일들을 secondary storage로 mapping한다. 

-> OS는 안정적인, non 휘발성인 storage media에다가 파일을 백업한다. 

 

 

10. 그 외 OS의 기능

 

(1) Mass storage management : 컴퓨터의 작동 속도와 연관됨. 여유공간 관리, 디스크 예약 등

(2) I/O subsystem : 사용자로부터 하드웨어 장치의 특성을 숨긴다. I/O의 메모리를 관리

    -> buffering(버퍼링) : 전송하는 동안 데이터를 일시적으로 저장

        caching(캐싱) : 성능 향상을 위해 data의 일부를 더 빠른 storage에 저장한다. 

        spooling(스풀링) : job의 출력과 other job의 입력이 중복된다. 

(3) Protection and Security

    내부 및 외부 공격으로부터 system을 보호한다. 

    User ID에 따라 누가 무슨 권한이 있는지를 확인 후 권한 부여. 

 

 

 

 

 

 

 

** 프로세스의 작업을 수행하는 한 단위를 스레드라고 한다 ~~

 

728x90
반응형

'KNU_study > 운영체제' 카테고리의 다른 글

운영체제(6) Synchronization Tools & Examples  (0) 2023.06.12
운영체제(5) CPU Scheduling  (1) 2023.05.18
운영체제(4) Thread  (0) 2023.05.18
운영체제(3) Process  (0) 2023.05.16
운영체제(2) Operating-System Structures  (0) 2023.05.16