초창기 컴퓨터
→ 최초의 컴퓨터 에니악.
- 미사일 탄도 계산을 위해 제작.
- 진공관을 사용.
- 진공관이 켜지면 1, 꺼지면 0
- 컴퓨터가 2진법을 사용하는 계기
- 전선을 연결하여 논리 회로를 구성하는 하드와이어링 방식을 이용.
- 전선으로 논리회로를 구성해 원하는 결과만 얻는 방식
- 다른 계산이나 수식을 사용하려면 전선을 다시 연결해야 함.
일괄 작업 시스템
→ 모든 작업을 한꺼번에 처리하는 시스템
- IC칩과 CPU, 메인 메모리가 생김.
- IC칩 : 진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 구현.
- 천공카드 리더와 라인 프린터를 입력, 출력 장치로 이용.
- 천공카드 리더 : 카드에 구멍을 뚫어 문자를 입력, OMR 카드 원조.
- 라인 프린터 : 문자만 출력하는 프린터, 한 번에 한 줄씩 출력.
- 카드에 프로그램만 바꾸면 다른 작업이 가능.
- 단, 필요한 프로그램과 데이터를 동시에 입력해야 함. → 프로그램 실행 중간에 데이터 입력, 수정 불가능.
- 일괄 작업 시스템은 운영체제가 처음 사용되었다.
- 메인메모리는 운영체제 영역, 사용자 영역으로 나뉜다.
대화형 시스템
→ 컴퓨터와 사용자가 대화를 통해 작업이 이루어지는 시스템
- 키보드와 모니터의 개발로 작업 중간에 데이터를 입력하거나 중간 값을 볼 수 있게 되었다.
- 프로그램이 진행되는 동안 입출력이 얼마만에 완료 될지 예측이 어렵다.
- 작업 시간 예측이 어렵다.
시분할 시스템
→ 여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것
- CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 나눠 준다.
- 시간 분배가 매우 빠른 속도로 반복되면 A,B,C 작업이 동시에 실행되는 것처럼 보인다.
멀티 프로그래밍
→ 하나의 CPU 로 여러 작업을 동시에 실행하는 기술.
- 시분할 시스템으로 멀티 프로그래밍을 구현한다.
타임 슬라이스
잘게 나뉜 시간 한 조각
멀티프로그래밍 수준
시분할 시스템에서 동시에 실행되는 작업의 개수
다중 사용자 시스템
하나의 컴퓨터에서 여러 명이 작업할 수 있는 시스템
시분할 시스템 단점
- 여러 작업을 동시 처리하기 위한 추가 작업이 필요하다.
- 사용자 메모리를 정리하는 작업.
- 많은 양의 작업이 공존하면 중요 작업이 일정 시간 안에 끝나는 것을 보장하지 못함.
단점을 보완하기 위해…?
실시간 시스템
특정 시스템에서 일정 시간 안에 작업이 처리되도록 보장하는 시스템
- 원자력이나 미사일을 제어하는 일정 시간 안에 반드시 끝나야하는 작업에 사용한다.
시분할 시스템을 통해 값비싼 컴퓨터를 한 사람이나 한 작업이 독점하지 않고 여러 사람이 동시에 사용할 수 있는 환경이 만들어졌다.
그리고, 이 시기에 현대 운영체제의 원형인 유닉스가 C 언어로 개발된다.
유닉스는 멀티 프로그래밍과 다중 사용자를 지원하는 운영체제로, 작고 안정적인 운영체제이다.
분산 시스템
→ 값이 싸고 크기가 작은 컴퓨터를 하나로 묶어 대형 컴퓨터에 버금가는 시스템. 네트워크상에 분산된 여러 컴퓨터로 작업을 처리하고 그 결과를 상호 교환하도록 구성.
개인용 컴퓨터 보급
- 스티브 잡스가 최초의 개인용 컴퓨터 “애플2” 발표. 이후 급속도로 보급.
- 운영체제로는 애플의 매킨토시와 마이크로소프트의 MS-DOS 사용.
인터넷의 등장
- 서로 호환되지 않는 LAN 을 하나로 묶기 위한 연구 진행.
- 아르파넷 ARPAnet 개발.
- 이 때, TCP/IP 프로토콜이 정의됨.
클라이언트/서버 시스템
→ 작업을 요청하는 클라이언트와 거기에 응답하여 요청받은 작업을 처리하는 서버의 이중 구조.
- 분산 시스템은 모든 컴퓨터의 지위가 동일해 하나가 고장나거나 추가되면…
- 작업 분배와 결과를 모으기가 쉽지 않음.
- 그래서 요청과 응답을 하는 구조로 나눔.
- 웹 시스템의 보급으로 일반인에게 알려지게 되었다.
문제점
→ 서버 과부하.
- 모든 요청이 서버로 집중됨.
- 서버 다운 위험…!!
데몬
멈추지 않고 작동하는 프로그램, (365일 켜져있어야 하는) 서버에 켜진 프로그램을 말한다.
P2P 시스템
→ 서버는 중계만 하고, 파일을 얻고자 하는 사용자는 파일을 가진 사용자로부터 직접 다운로드하는 시스템.
- 서버는 사용자의 파일 목록만 가진다.
- 사용자는 서버를 통해 누가 해당 파일을 가지고 있는지 위치 정보만 얻는다.
- 파일을 다운로드 할 땐 서버를 거치는 게 아닌 파일 보유자에게 직접 받는다.
- 서버 과부하를 줄이기 위해 만들었다.
예시
- 소리바다, 프루나, 당나귀.
- 메신저 → 카카오톡
- 로그인하면 서버에 접속해 사용자 인증을 하고 정보를 받는다.
- 대화할 땐 상대방과 P2P로 직접 연결되어 채팅한다.
블록체인
서버가 없는 완전한 P2P 시스템
- P2P 시스템 전체에 거래 장부를 분산 시킴.
- 전체 시스템의 50% 이상이 동의했을 때만 거래 장부 변경 가능.
- 장부가 조작되거나 유실되더라도 거래에 영향을 미치지 않음.
- 현재 기술로는 해킹이 불가능.
- 디지털 자산의 유일성을 증명하는 곳에 사용되어, NFT 라고 부른다.
클라우드 컴퓨팅
→ 하드웨어와 소프트웨어를 클라우드라는 중앙 시스템에 숨기고 사용자는 필요한 서비스만 그때그때 이용하는 방식의 컴퓨팅 환경
- 하드웨어 구현에서 그리드 기술을 사용해 그리드 컴퓨팅과 많은 부분이 겹칠 수 있음.
- 그러나, 클라우드 컴퓨팅은 서비스 중심의 환경.
그리드 컴퓨팅 | 여러 곳에 분산된 컴퓨터를 하나로 묶어서 슈퍼 컴퓨터와 맞먹는 높은 수준의 컴퓨팅 파워 제공 |
클라우드 컴퓨팅 | 언제 어디서나 컴퓨팅 파워와 소프트웨어에 접근할 수 있는 유연한 컴퓨팅 환경 |
사물 인터넷 IoT
→ 냉장고, 세탁기와 같은 사물이 인터넷에 연결된 시스템
- 다양한 사물이 센서와 통신 기능을 내장해 스스로 통신하며 지능적인 서비스 제공.
- 스마트폰으로 에어컨틀거나 전등 끄기.
- 버스 전광판으로 실시간 도착 정보 알기.
'개발공부 개발새발 > OS' 카테고리의 다른 글
OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란? (0) | 2024.10.29 |
---|---|
OS ) CPU와 메모리 (0) | 2023.11.02 |
OS ) 컴퓨터의 기본 구성 (1) | 2023.10.23 |
OS ) 운영체제의 구성 (2) | 2023.10.23 |
OS ) 운영체제 소개 (0) | 2023.10.21 |