티스토리 뷰
1.운영체제의 역할
운영체제(Operating System, OS)란
자원(resource) 관리를 하는 소프트웨어(resource manager)
자원은
- 하드웨어 : 프로세서, 메모리, 입출력장치, 통신장치
- 소프트웨어
등이 있다
효율적이고 공평한 자원 사용을 위해 상충되는 자원 요구(request) 조정
애플리케이션은 운영체제 위에 돌아가고
운영체제 밑에 cpu, 보조기억장치, 입력장치, 주기억장치, 출력장치 등의 하드웨어가 있다
운영체제를 통해 하드웨어를 관리한다
2. 운영체제의 발전과정
1940년대
운영체제x
1950년대
한 번에 한 개의 job 실행
job간의 전환을 용이하게 하는 기술 도입
->일괄처리 시스템(batch processing system)
프로그램과 데이터를 tape으로 연속으로 공급(submit)
사용자의 개입없이 순차적으로 작업을 스케쥴링하는 것이 일괄처리시스템이라고한다
쉽게 이해하자면 컨베이어 벨트에 작업이 순서대로 배치돼있으면
알아서 이동하는 것 같은 느낌인 것 같다
한 번에 한 개의 작업밖에 못하지만
연속적으로 일을 하게끔 만든 것 같다
1960년대
일괄처리 시스템 사용
다중 프로그래밍(multiprogramming) 지원
한번에 여러 작업(프로그램) 처리
다른 작업들이 주변장치(peripheral device)를 사용하는 동안
한 개의 job만 프로세서 이용
시분할 시스템(timesharing system), 라운드 로빈(Round Robin)방식
- 시분할 시스템의 핵심은 '타임슬라이스'이다. 입출력 발생시에도 스케쥴링이 일어나지만 타임슬라이스에서 무조건 스케쥴링을 진행하는 것이다. 이에 따라 한 프로그램에서 입출력 완료 후 대기 시간이 적어졌다. 그에 따라 대화가 빈번한 프로그램도 자연스럽게 수행될 수 있게 되었다.
- 여러 사용자가 각자의 단말장치를 통하여 운영체제와 대화하면서 각자의 프로그램을 실행한다
- 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용시간을
작은 작업 시간량으로 쪼개어 그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리한다
많은 동시 대화형 사용자(interactive user) 지원
소요 시간(turnaround time)이 수 초 ~수십 초 단위로 축소
->소요 시간이란 job 제출에서 결과 반환까지 걸리는 시간
참고 블로그 : https://inuplace.tistory.com/280
그러니까 시분할 시스템은 내가 이해한대로 해석하자면
CPU는 한가지의 일밖에 진행할 수 없어서
여러개의 일을 진행하기 위해
시간을 할당해
예를들어 0.1초동안 a작업, 0.1초동안 b작업, 0.1초동안 c작업 이렇게
여러개의 프로그램을 전환하며 실행해서
마치 여러개의 작업을 하는것처럼 보이게 한다는 것 같다
실시간 시스템 (real-time system)
지정된 시간 내에 결과를 제공해야 하는 시스템
가상 메모리(virtual memory)
실제 존재하는 메모리 공간보다 더 많은 메모리가 있는 것처럼
메모리를 사용하는 방법
여러 시분할 운영체제 개발
CTSS(Compatible Time-Sharing System)
- MIT에서 개발한 초기 시분할 시스템
Multics(Multiplexed Information and Computing Service)
- MIT에서 CTSS 후속으로 개발
- 계층적 파일시스템, 다양한 COMMAND LINE SHELL 명령어 지원
- 가상 메모리(virtual memory) 지원
Unix
- Bell Labs에서 Ken Thompson, Dennis Ritchie 개발, 1969
-개발언어로 C 개발 - Multics의 영향을 많이 받은 설계
1970년대
다중 모드 시분할 시스템(multimode timesharing system)
- 일괄처리, 시분할, 실시간 응용 프로그램 실행 지원
개인용 컴퓨터 개발 환경 조성
- 마이크로프로세스(microprocessor) 개발 초기 단계
TCP/IP(Transmission Control Protocol/Internet Protocol)
- 미 국방성(Department of Defense, DOD) 개발
- 군사 및 대학 연결망으로 광범위하게 사용
- 표준 통신 프로토콜의 하나로 발전
- 보안(security) 문제 노출
-취약한(vulnerable) 통신선을 통해 데이터 전달
1980년대
- PC(personal computer) 및 워크스테이션(workstation)의 시대
- 필요에 따라 컴퓨팅 지원 분산
- GUI(Graphic User Interface) 지원에 따라 컴퓨터 활용 용이
- 네트워크를 통한 정보 전달 일반화
- Client-Server 컴퓨팅 모델 확산
클라이언트(client) : 서비스 요청
서버(server) 요청 서비스 응답(처리)
소프트웨어 공학(Software engineering) 분야 발전
소프트웨어의 개발, 운용, 유지보스 등의 생명 주기(life cycle)을
체계적이고 규범적이며 정량적으로 다루는 학문
- 코드 재사용(code reusability)
- 프로그래밍 언어에서 추상화(abstraction) 수준 향상
- 독립적으로 수행되는 다중 쓰레드(multiple thread)
1990년대
- 하드웨어 성능의 기하급수적 향상
처리 성능 및 저장장치 가격 하락
분산처리(distributed computing) 수요 증가
Moore의 법칙
반도체 집적회로의 성능이 18개월마다 2배로 증가
황의 법칙
메모리 반도체 집적도 1년에 2배 증가
- 운영체제의 사용 편의성 증가
GUI 기본 제공
Plug-and-Play 기능 제공
- WWW(World Wide Web) 확산
CERN의 Tim Berners-Lee가 하이퍼링크로 연결된 문서로 정보를 공유
HTML(Hypertext Markup Language)
- WWW의 문서 정의
HTTP(Hypertext Transfer Protocol)
- WWW을 통한 문서 전달을 위한 통신 프로토콜
- 운영체제에서 네트워킹 지원 일반화
- Microsoft 시장 주도
Windows 운영체제
- 객체 기술(object technology) 유행
-객체지향 언어(C++, Java, C#)
-객체지향 운영체제(Object-Oriented Operating System)
- Open-Source 소프트웨어 확산
'개념 > 운영체제' 카테고리의 다른 글
쓰레드 (0) | 2022.03.22 |
---|---|
프로세스2 (0) | 2022.03.18 |
프로세스 (0) | 2022.03.15 |
운영체제의 발전과정(2) (0) | 2022.03.11 |
하드웨어 및 소프트웨어 (0) | 2022.03.11 |
- Total
- Today
- Yesterday
- authorization code
- html #웹 #웹사이트 #플레이리스트
- 우분투
- infcon 2024
- git
- oauth
- 로스트아크 캐릭터
- authorization_code
- 2024인프콘
- oauth2.0
- 데이터3법
- git commit 수정
- 데이터 3법
- SQL
- CSS
- git 예전 커밋 수정
- DML
- 오픈소스
- 데이터베이스
- 리눅스
- javascript
- 인프콘2024
- kloa
- 클로아
- html
- DDL
- Android Studio
- 프로그래머스
- bfs
- SpringBoot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |