세종대학교 - 운영체제 및 보안 수업
Introduction
- 운영체제란?
- 이전 운영체제
- simple batch systems
- multiprogrammed batch systems
- Time-Sharing system
- Personal Computer Systems
- Parallel and Distributed Systems
- Real-time Systems
컴퓨터 시스템 아키텍쳐
- 시스템 버스(연결 통로)에 각종 하드웨어 연결되어있는 형태
cpu, disk controller, printer controller, tape-drive controller (펀치 뚫어서 하는게 있었음) memory controller로 메모리와 연결
운영체제란?
- 운영자와 컴퓨터 하드웨어 중간에서 역할 하는 프로그램 (즉 운영체제도 프로그램)
- 일반적인 컴퓨팅의 주요 대상 -> 소프트웨어
- os는 응용프로그램 실행의 복잡성을 간소화하고 효율적으로 관리
운영체제 목표
- 응용프로그램 실행 간소화 및 유저 문제 해결 용이
- 컴퓨터의 하드웨어 효율적 사용
- 하드웨어와 소프트웨어 간 자원 공유 허용
- (자원이 한정되어 있으므로)
- 응용 소프트웨어를 휴대성 있고 다재다능하게 만듦
- 유저 프로그램들의 보호와 보안 독립성을 제공
- (realtime os 에서는 더 중요, 자동차나 특정 기계에서 오류 하나 때문에 문제가 연쇄적으로 반응하면 큰일나기 때문)
- 전체 시스템 신뢰성 향상
- 에러 제한, 내결함성(시스템 일부 구성요소가 작동하지 않더라도 계속 작동할 수 있는 기능), 재구성
운영체제 공부 이유
- 하드웨어와 응용프로그램 간의 상호작용을 이해하기 위해
- 새로운 애플리케이션, 새로운 하드웨어
- 오늘날 사회 고유의 관점
- 컴퓨터 시스템 설계의 기본 원리를 이해하기 위해
- 효율적인 자원 관리, 보안, 유연성
- 특화된 운영체제 필요 중가
- 임베디드 os (휴대폰, 센서, 조종기)
- 리얼타임 os (비행장치 조종, 멀티미디어 서비스)
하드웨어와 소프트웨어 복잡성 증가
- (운영체제 소스코드가 왜 많아졌냐)
- (무어의 법칙에 따라 하드웨어가 받쳐줘서 그냥 짜는 형식이 많아짐)
컴퓨터 시스템 요소
하드웨어
- 기본 컴퓨팅 리소스 제공 (CPU, 메모리, 입출력 기기)
운영체제
- 응용 프로그램이 하드웨어를 이용하는 것을 조종하고 조정함
응용 프로그램
- 사용자의 컴퓨팅 문제를 해결
- (컴파일러, DB 시스템, 비디오 게임, 업무 프로그램 ex 은행 프로그램)
- 사용자의 컴퓨팅 문제를 해결
사용자
사람들, 기계들, 다른 컴퓨터들
운영체제 관점
- 자원 할당자
- 컴퓨터 시스템 자원(소프트웨어, 하드웨어)을 할당하고 효율적으로 관리
- 제어 프로그램
- 사용자 프로그램의 실행과 입출력 장치의 작동을 관리
- 커널
- 시스템이 작동하는 한 계속 실행되어야하는 프로그램
- os가 커널에서 작동함
OS 스펙트럼
- 모니터와 작은 커널
- 특수한 목적 및 임베디드 시스템, 리얼타임 세스템
- Batch, multiprogramming
- Timesharing
- 워크 스테이션, 서버, 미니 컴퓨터, 파임프레임
- Transaction system (거래 시스템)
- 개인 컴퓨터 시스템
- 모바일 플랫폼, 모든 사이즈 기기들
이전 운영체제 시스템들
Bare Machine (1950's)
- 하드웨어 비쌈, 사람 쌈
- 구조
- 대형기계가 콘솔에서 실행
- 단일 사용자 시스템
- 프로그래머와 사용자는 작동자
- 종이 테이프와 펀치 카드
- 이전 소프트웨어
- 어셈블리어, 컴파일러, 링커, 로더, 기기 드라이버, 공통된 단순 반복 라이브러리
- 보안 실행
- 비싼 자원을 사용해서 비효율적
- CPU 낮은 사용율, 설정 시간 오래 걸림
Simple Batch Systems (1960's)
- 유사한 요구 사항 가진 batching 프로세스를 사용하여 설정 시간 줄임
- 카드 리더기를 늘리고, 작동자 고용
- 사용자랑 운영자랑 다름
- 자동 작업 순서 지정
- 기본 os 형성
- 레지던트 모니터
- 초기 제어를 유지하고, 프로세스 전환을 제어하고 모니터로 돌아옴
- 문제
- 프로그램에서 프로세스와 데이터를 구분해야함
감독자/운영자 제어
- 보안 모니터가 프로세스를 제어
- 특정 카드들이 해야할 것을 알려줌
- 사용자 프로그램이 입출력을 방지한다.
- 컴퓨터와 사람 분리
- 사용자가 카드 덱을 제출
- 카드가 테이프에 들어감
- 테이프가 작업자에 의해 실행
- 결과가 테이프에 적어져 나옴
- 테이프가 프린터에 프린트됨
- 문제
- 2일이나 걸릴 정도로 오래걸림
- CPU 사용률 적음
- 입출력 장치와 CPU가 오버랩 되지 않아 기계적 장치가 느려짐
Batch 시스템 - 문제
- 입출력 장치 속도 올리는 해결법
- 오프라인 진행
- 테이프에서 메모리로 로드하는 작업, 카드 읽기, 라인 프린팅 등이 오프라인으로 수행
- 스풀링
- 디스크 (랜덤 엑세스 장치)를 가능한 많은 입력 파일들을 읽고 출력 장치가 그들을 받아들일때 까지 결과 파일을 저장하는 큰 저장소로 사용
- 중복 허용 - 작업의 입출력과 다른 작업의 계산을 허용
- Os가 Cpu 사용율을 높이기 위해 다음 실행작업을 선택할 수 있도록 작업 풀의 개념을 도입
입출력 속도 올리기
- 채널 생성해서 분리 연결
Batch 시스템 - 입출력 완료
- 입출력 완료 알 수 있는 방법
- 폴링 (상태를 주기적으로 확인하는 것)
- 수행 중이면 장치가 플래그 세팅하기
- 입출력 완료 반복을 기다리고 있는지 프로그램이 테스트함
- 인터럽트
- 입출력이 완료되면, 기기가 cpu가 특정 instruction 주소에 점프를 수행하도록 지시, 서비스 반복을 인터럽트 하는것을 포함한 인스트럭션 주소에
- 인터럽트가 발생하면, CPU는 인터럽트 수행하는 우선순위에 있는 실행하는 코드를 반환
- 폴링 (상태를 주기적으로 확인하는 것)
다중 프로그래밍
- 인터럽트를 사용하여 여러 프로그램을 동시에 실행
- 프로그램이 입출력을 수행할 때, 폴링 대신, 인터럽트가 수신될 때까지 다른 프로그램을 실행시키기
- 각 프로그램에 보안 매모리와 입출력 장치가 필요
- (여러 개 메모리 동시 사용 -> 보안 필요해짐, I/O도 각각 필요)
- 프로그램이 무한이 반복되는 경우 개입 필요
- 실행할 다음 작업을 선택하는 CPU 스케줄링 필요
TimeSharing
- 하드웨어 싸지고, 사람 비싸지고
- 선입선출 순서로 큐(실행 대기열)에 있는 프로그램
- 멀티프로그래밍과 비슷하지만 타이머가 양자(시간 슬라이스) 후에 인터럽트함.
- 인터럽트된 프로그램은 선입선출 끝으로 반환됨
- 다음 프로그램은 선입선출의 헤드에서 가져옴
- 제어 카드 인터프리터가 명령 언어 인터프리터로 대체됨
- 상호작용 (액션/반응)
- 운영체제가 한 명령어의 실행을 종료하면, 사용자로부터 다음 제어문을 요구함
- 파일 시스템
- 유저가 데이터와 코드에 접근을 위해 온라인 파일 시스템이 필요
- 가상 메모리
- 프로세스가 메모리에서 디스크로 인아웃함.
- (메모리 관리와 관련)
개인 컴퓨터 시스템
- 하드웨어 싸고, 사람 비쌈
- 사용자 혼자 시스템, 휴대 가능
- 입출력 장치 - 키보드, 마우스, 모니터, 작은 프린터
- 노트북과 휴대용 컴퓨터, 스마트 카드, 무선 기기들
- 개인 사용자 시스템은 향상된 CPU 실행율과 보호 기능이 필요하지 않음
- (우선순위 생김 -> 우선순위별 응답속도 영향)
- 장점
- 사용자 편의성, 반응성, 유비쿼터스
병렬 시스템
- 하나 이상의 cpu를 가진 멀티프로세서 시스템, (이 cpu간 밀접한 소통 가짐)
- 향상된 처리량, 경제성, 향상된 신뢰성
- 종류
- 백터와 파이프라인
- 대칭과 비대칭 멀티프로세싱
- 분산 메모리 vs 공유 메모리
- 프로그래밍 모델
- 긴밀하게 결합 vs 느슨한 결합, 메시지 기반 vs. 공유 기반
분산 시스템
- 하드웨어 매우 쌈, 사람 굉장히 비쌈
- 많은 프로세서에 계산 분배
- 느슨하게 결합된 - 공유 메모리 없음, 다양한 통신 회선
- 클라이언트/서버 아키텍쳐
- 장점
- 자원 공유
- 계산 속도 향상
- 신뢰성
- 커뮤니케이션 - 이메일
- 응용 프로그램 - 디지털 라이브러리, 디지털 멀티미디어
리얼타임 시스템
- 시스템 기능이 올바르려면 적시성이 중요
- 피드백 / 제어 루프
- 센서 및 실행자
- realtime 하드 시스템
- 응답 시간이 너무 길면 실패
- 보조 저장 공간이 제한적
- realtime 소프트 시스템
- 응답 시간이 너무 길면 정확도 떨어짐
- 멀티미디어, 가상 현실과 같은 응용프로그램에 유용
'학교수업 > 운영체제' 카테고리의 다른 글
운영체제 및 보안 - Lecture 4. Thread (1) | 2025.04.14 |
---|---|
운영체제 및 보안 - Lecture 3. Process Concept (0) | 2025.04.14 |
운영체제 및 보안 - Lecture 2. System structures (3) | 2025.04.13 |