OS - 컴퓨터 구조와 역사

Bomin Seo·2022년 8월 4일
0

Memory

ROM(Read Only Memory)

  • 읽기 전용(쓰기 제한)
  • 전원이 꺼지더라도 데이터가 유지되는 메모리, 영구적으로 저장하는 비휘발성 메모리

RAM(Random Access Memory, 메인 메모리)

  • 임의의 위치에 읽기와 쓰기가 가능한 메모리

  • 전원이 꺼지면 데이터를 제거하는 휘발성 메모리

  • SRAM(Static RAM) : Cache memory 사용

    • 데이터를 저장하면 내용이 소멸되거나 변화하지 않는 안정적인 메모리
  • DRAM(Dynamic RAM) : Main Memory 사용

    • 시간이 지남에 따라 데이터가 변하는 메모리
    • 주기적으로 데이터를 refresh하는 과정을 거친다.
  • DRAM은 refresh과정 중 접근할 수 없으므로 SRAM이 성능이 더 좋으며 비싸다

  • optical disk(cd) / magnetic tapes(vcr) : 은행이나 언론사에서 장기간 데이터 보존을 위해 사용

Cache Memory

  • CPU와 MEMORY 사이에 있는 임시 저장 장치
  • 병목 현상을 줄이기 위해 자주 사용하는 데이터를 Cache에 저장하고 다음에 사용할 때 주기억장치가 아닌 cache 메모리에서 먼저 가져오면서 성능을 향상시킨다.
  • Locality : 20%의 프로그램이 실행 시간의 80%를 차지한다 (cache 사용 이유)
  • Write Through : cache memory와 main memory에 데이터를 한 번에 쓰는 방식
  • Writhe Back : cache memory에 데이터를 쓴 후 한 번에 main memory에 쓰는 방식(성능좋다)
  • Cache coherency
    • 복수 개의CPU사용 시 그에 맞는 Cache를 사용하며 동기화 문제가 발생한다.
    • 복수 개의 cache memory의 변경사항 반영

Physical Hard Disk structure(HDD)

  • arm이 원하는 track으로 이동 후 arm의 head부분이 원하는 sector를 지날 때 데이터를 읽는다.
  • cylinders : platter의 동일한 track을 이은 것
  • arm의 움직임의 최소화를 위해 platter의 앞면, 뒷면 사용 후 같은 cylinder에 연속적으로 저장한다.

Compact Flash card Internals(SSD)

NAND Flash Memory

  • 읽고 쓰기가 빈번하게 이루어지는 usb, 최근 대부분이 NAND 기반
  • 각 셀이 직렬 형태로 이루어져 있어 random access가 불가능하고 각 셀에서 순차적으로 읽어내는 방식
  • NOR Flash에 비해 read속도가 느리지만, 메모리 블록이 여러 페이지로 나누어져 있어 쓰기 지우기 속도가 더 빠르다.
  • Read가 느리기 때문에 컴퓨터 메모리로 쓰기에 적합하지 않지만, 이동식 저장매체에 어울림

NOR Flash Memory

  • 각 셀이 병렬 형태로 이루어져 있어 read시 random access가 가능해 read속도가 빠르다
  • 쓰기/지우기는 random access가 불가능하기 때문에 속도가 느리다
  • 속도를 올리기 위해 메모리에 프로그램을 저장하고 실행한다.

Flash Translation Layer(FTL)

  • Flash memory와 파일시스템 사이에 위치하면서, 플래시 메모리를 디스크처럼 사용할 수 있게 해주는 기술

Protection vs Security

Protection

  • 내부의 비정상적인 동작에 대해서 정상적으로 동작하게 한다

Security

  • 외부의 비정상적인 동작에 대해서 정상적으로 동작하게 한다

Hardware protection

CPU Protection

  • 하나의 프로그램이 독점하지 못하도록 한다
  • 운영체제가 주기적으로 실행되며 CPU를 관리하여 독점하지 못하도록 한다.
  • Timer(주기적으로 hardware interrupt 발생시킨다) : periodic interrupt, 10ms in OS(100Hz)

Memory Protection

  • 독립적인 프로그램이 메모리의 변화를 일으키지 못하도록 한다
  • 운영체제가 참조할 수 없는 메모리를 참조하면 protection fault를 발생시킨다.

I/O Protection

  • 프로그램이 직접 I/O장치를 사용하지 못하게 하며 독점하지 못하도록 한다.
  • 프로그램이 아닌 운영체제가 disk에서의 데이터를 관리한다(system call)
  • Dual mode operation in CPU(user mode와 kernel mode로 나누어져 접근 권한을 제한)
  • Privileged instructions(kernel mode에서만 수행가능) only in kernel mode

System Call

  • read( ) 명령어는 운영체제에 있기 때문에 trap으로 운영체제를 호출한다.

OS가 수행되는 시점

  • Bootstrapping (컴퓨터가 부팅될 때)
  • System calls : 애플리케이션이 OS에게 서비스를 요청 (애플리케이션이 OS를 요청할 때)
  • Interrupt (Hardware device에서 요청이 발생했을 때 or timer interrupt가 동작할 때)

컴퓨터/OS의 역사

1st generation (1945~1955)

  • Von Newman이 Eniac을 만들었다
  • NO OS/Programming Languages/Assembly Languages -> 기계어로 직접 구현하였다.

2nd generation (1955~1965)

  • Transistor가 발명되었으며 Mainframe이라고 불렀다.
  • 하나의 프로그램만 순차적으로 OS가 실행하였다
  • 단순한 구조를 batch system이라고 명했으며, OS를 Resident Monitor라고 명했다.
  • 프로그램이 하나이기 때문에 I/O의 병목현상으로 CPU가 낭비되었다.

3rd generation (1965~1980)

  • 현재의 운영체제의 큰 틀이 완성되었다.
  • 하나의 프로그램이 아닌 여러 프로그램을 돌림으로써 CPU성능을 향상시켰다.
    • Multiprogramming systems
  • 선행되는 작업이 I/O를 하지 않으면 후행되는 작업이 실행되지 않는 문제점 발생
    • Time-Sharing systems 도입 (Round-robin) : response time 향상
  • Integrated Circuits(ICs)가 발명됨으로써 컴퓨터가 더 작아졌으며, Architectural 개념이 제시
  • IBM System/360 family

4th generation (1980~)

  • IC의 집적도가 높아지면서 architectural advance를 이루었다
  • PC의 출현 / GUI, Multimedia, internet, network의 출현
  • microprocessor(smaller and faster) / storages(larger & faster)

Computing Environments

Traditional computing

  • mainframe system
    • batch system
    • multiprogramming system
    • time-sharing system
  • desktop system

mobile computing

  • hand-held system
    • limited memory
    • slow processors
    • small display screens

Real-time embedded computing

  • real -teim system : 시간의 제약 조건이 있는 system
    • Hard real time : deadline을 지키지 못하면 재앙이 발생 (원자로, 미사일 등)
  • Soft real time : 큰 일은 아니지만 결과물이 의미가 없어진다.
    • 비디오 decoding

Client-server computing

  • Large-scale server in data center
  • Clustered server
    • Parallel + Distributed + Storage

peer-to-peer computing

  • clinet가 server역할까지 한다.
  • 중앙에 서버 없이 동작한다
  • ex) Torrent

Virtualization

  • VMM or Hypervisor

  • Java (web에서 다운받아 자신의 os위에서 동작하게 한다는 개념)

    • SunOS를 만든 SunMicrosystems에서 만들었다.
    • JIT(Just-in-TIME) 컴파일러를 사용하여 동작하는 OS에 맞게 컴파일하여 성능을 높인다.
    • JVM(Java virtual machine) : java를 실행시켜주는 runtime 프로그램
      • platform-neutral한 java bytecode를 OS에 맞는 Instruction으로 변환한다.
      • 동작하는 OS Hardware에 접근시 OS에 맞는 Instruction으로 변환한다.
      • 플랫폼 independent하다는 장점이 있지만, dependent한 프로그램보다 성능이 떨어진다.

OS의 역사

  1. IBM OS/360 (multiprogramming, OS다운 최초의 OS)
  2. MIT CTSS (Time sharing system 지원)
  3. MIT, Bell Labs, GE, MULTICS
  4. UNIX(high-level programming language로 만들어진 최초의 OS, C로 만듦) born in 1969
  • System V / BSD 계열로 나뉜다.
  • XENIX : PC에서 동작하는 최초 UNIX
  • SunOS : BSD를 활용한 상용 UNIX
    • Solaris로 발전(UNIX 시장 점유)
  • MACH : 최초의 Microkernel 기반 UNIX
    • NeXTStep으로 발전
    • MacOS와 유사
  • LINUX : BSD/System V 혼합
  • POSIX : UNIX의 표준
profile
KHU, SWCON

0개의 댓글