observe_db

[OS] 1. 운영체제 소개(1) 본문

학교 공부/운영체제(OS)(3-1)

[OS] 1. 운영체제 소개(1)

쩡윤 2023. 3. 10. 22:24

3/2, 3/6

Linux, Windows, macOS, android, iOS, UNIX 등등

유닉스 타임라인
유닉스 기반 OS들의 발전사

 

운영체제란(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: 요청 서비스 처리

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
      • 같은 종류의 일을 하는 것을 나누어, 결과는 결합하고, 연산을 반복.

[1] 데이터 버스에서 한꺼번에 오는 크기

Comments