일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파싱
- NLP
- 데이터베이스
- css
- 컴파일러
- 랩실일기
- Agile
- OS
- 정보검색
- 자연어처리
- React
- C언어
- 벡터
- 애자일
- 836
- Linear Algebra
- 소프트웨어공학
- 클래스
- 컴파일
- DB
- 오픈소스웹소프트웨어
- 스케줄러
- 데이터분석
- 언어모델
- 운영체제
- 파싱테이블
- 가상메모리
- 웹소프트웨어
- 프로세스
- 객체지향설계
Archives
- Today
- Total
observe_db
[OS] 1. 운영체제 소개(1) 본문
3/2, 3/6
Linux, Windows, macOS, android, iOS, UNIX 등등
운영체제란(Operating System, OS)
- 자원(resource) 관리를 하는 소프트웨어(resource manager)
- 자원(resource): 하드웨어(프로세서, 메모리, 입출력장치, 통신장치), 소프트웨어
- 효율적이고 공평한 자원 사용을 위한 자원 요구(request) 조정
- 사용자/응용프로그램과 하드웨어 간의 인터페이스
발전과정
- 1940's
- 초창기엔 운영체제 부재(EDSAC에 노이만 구조가 최초로 적용됨)
- 1950's
- 한번에 하나의 job 실행(천공카드 방식)
- 전환을 용이하게 하는 기술 도입
- 일괄처리 시스템(batch processing system): 프로그램과 데이터를 tape으로 연속으로 공급(submit)
- 1960's
- 일괄처리 시스템
- 다중 프로그래밍(multiprogramming) 지원
- 한번에 여러 작업 처리
- 다른 작업들이 주변장치(peripheral device)를 사용하는 동안, 한 개의 job만 프로세서 이용
- 시분할 시스템(timesharing system)
- 많은 동시 대화형 사용자(interactive user) 지원
- 소요시간(turnaround time)이 수 초~수십초 단위 축소(제출~반환까지의 시간)
- 실시간 시스템(real-time system): 지정된 시간 내에 결과를 제공해야하는 시스템
- 가상 메모리(virtual memory): 실제 존재하는 메모리 공간보다 더 많은 메모리가 있는 것처럼 메모리를 사용하는 방법
- IBM System/360 메인프레임 컴퓨터 출시(1964)
- 많은 산업 표준 도출
- 8비트 주소
- 32비트 word[1]
- IBM floating point 구조(20년 후에 IEEE 754-1985 표준 채택)
- 운영체제
- OS/360(단일 일괄처리 OS, 다중프로그래밍 지원) -> Cp-67(시분할 OS, 가상메모리 지원)
- 많은 산업 표준 도출
- 여러 시분할 운영체제 개발
- CTSS(Compatible Time-Sharing System): MIT 개발한 초기 시분할 시스템
- Multics(Multiplexed Information and Computing Service): CTSS의 후속
- 계층적 파일 시스템, 다양한 command line shell 명령어 지원, 가상메모리 지원
- Unix: Multics의 영향을 받은 설계
- Bell Labs에서 Ken Thompson, Dennis Ritchie 개발(1969), 개발언어는 C
- 1970's
- 다중 모드 시분할 시스템(multimode timesharing system): 일괄처리, 시분할, 실시간 응용 프로그램 실행 지원
- 개인용 컴퓨터 개발 환경 조성
- 마이크로프로세서 개발 초기 단계
- TCP/IP(Transmission Control Protocol/Internet Protocol)
- 미 국방성 개발
- 군사 및 대학 연결망으로 광범위하게 사용
- 표준 통신 프로토콜의 하나로 발전
- 보안 문제 노출(취약한 통신선을 통한 데이터 전달)
- 1980's
- PC(Personal Computer) 및 워크스테이션(workstation)의 시대
- 필요에 따라 컴퓨팅 지원 분산
- GUI(Graphic User Interface) 지원에 따른 컴퓨터 활용 용이
- 네트워크를 통한 정보 전달 일반화
- Client-Server 컴퓨팅 모델 확산
- Client: 서비스 요청
- Server: 요청 서비스 처리
- 1980's
- 소프트웨어공학 분야 발전
- 1968년 용어 처음 사용
- 소프트웨어 개발/운용/유지보수 등의 생명주기(life cycle) 전반을 체계적이고 규범적이며 정량적으로 다루는 학문
- 미 정부가 국방성 소프트웨어 프로젝트의 관리를 위해 적극 지원
- 코드 재사용(code reusability)
- 프로그래밍 언어에서 추상화(abstraction) 수준 향상
- 독립적으로 수행되는 다중 쓰레드(multiple thread)
- 소프트웨어공학 분야 발전
- 1990's
- 하드웨어 성능의 기하급수적 향상
- 처리 성능 및 저장장치 가격 하락
- PC에서 대규모 복잡한 프로그램 실행
- 큰 규모의 DB 및 처리 작업 가능 저렴한 컴퓨터
- 메인 프레임 컴퓨터 필요성 축소
- 분산처리(distributed computing) 수요 증가
- 처리 성능 및 저장장치 가격 하락
- 하드웨어 성능의 기하급수적 향상
- 무어의 법칙: Intel 창업자 Gordon E. Moore(1965)가 반도체 집적회로의 성능이 18개월마다 2배 증가 예측. 2013년 이후 3년에 2배 예측
- 황의 법칙: 삼성전자 기술총괄 사장 황창규(2002)가 메모리 반도체 집적도 1년에 2배 증가 예측. But 2008년 128GB NAND 플래시 메모리 발표 실패
- 1990's
- 운영체제 사용 편의성 증가
- GUI 기본 제공
- Plug & Play 기능
- WWW(Wolrd Wide Web) 확산
- 1989년 유럽입자물리연구소 CERN의 Tim Berners-Lee 초기 개발
- hyperlink로 연결된 문서로 정보 공유
- HTML 문서
- HTTP 프로토콜
- 운영체제에서 네트워킹 지원 일반화
- MS의 시장 주도-Windows
- 초기 Apple의 매킨도스 OS의 많은 개념 도입
- 여러 응용프로그램 실행을 사용자가 쉽게 관리
- 객체기술(object technology) 유행
- 많은 어플이 객체지향언어(Object Oriented Programming Language)로 개발(ex. C++, JAVA, C#)
- 객체지향 운영체제(Object-Oriented Operating System)
- 객체로 운영체제 구성요소 표현
- 상속(inheritance), 인터페이스(interface) 개념
- modular 운영체제 개발
- 유지보수와 확장 용이
- Open-Source 소프트웨어 확산
- 프로그램과 소스코드 함께 배포
- 개인이 검증/수정/배포 가능. ex) Linux, Apache Web server, tomcat, ant 등
- Open Source Initiative(OSI)
- 오픈 소스 프로그램의 확산을 위한 기관
- Eric Steven Raymond 설립(1998)
- Free 소프트웨어(freeware)
- 무료로 배포한 소프트웨어, 수정없이 재배포는 가능
- Richard Stallman의 Free Software Foundation 설립(1986)
- GNU 프로젝트
- Richard Stallman 주도.
- 누구나 자유롭게 실행/복사/수정/배포 할 수 있고, 누구도 그런 권리를 제한해선 안된다는 사용 허가권(License)아래 소프트웨어 배포-GPL, LGPL, GFDL 라이센스
- LINUX, gcc, gdb, emacs, Open Office
- 운영체제 사용 편의성 증가
- 2000년대 이후
- middleware
- 양쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어
- Web Server에서 중요
- RPC, TP monitor 등
- 모바일 운영체제: Android, iOS, Tizen(망함..?)
- 클라우드 컴퓨팅(Cloud Computing)
- Server, Storage, Application 등의 IT 자원을 구매하여 인터넷 기반으로 필요한 만큼 사용료 기반으로 이용하는 방식
- 인터넷 기술을 기반으로 외부 사용자(기업/개인)에게 IT로 구현된 'as a service'로 제공되는 computing 환경
- 분산 파일 시스템 ex) Apache Hadoop
- 분산 처리 ex) Apache MapReduce
- 같은 종류의 일을 하는 것을 나누어, 결과는 결합하고, 연산을 반복.
- middleware
[1] 데이터 버스에서 한꺼번에 오는 크기
'학교 공부 > 운영체제(OS)(3-1)' 카테고리의 다른 글
[OS] 3. 프로세스(Process)(1) (0) | 2023.03.29 |
---|---|
[OS] 2. 하드웨어와 소프트웨어(3) (0) | 2023.03.21 |
[OS] 2. 하드웨어 및 소프트웨어(2) (0) | 2023.03.20 |
[OS] 2. 하드웨어 및 소프트웨어(1) (0) | 2023.03.15 |
[OS] 1. 운영체제 소개(2) (0) | 2023.03.14 |
Comments