Your SlideShare is downloading. ×
운영체제 Chapter1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

운영체제 Chapter1

598
views

Published on

operating system 1

operating system 1


1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
598
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 운영체제 시스템의 동작을 이해하기 위해선 컴퓨터 시스템은 구조에 대한 일반적인 지식이 필요하다. 때문에 먼저 컴퓨터 시스템에 대해 알아보고 시작하려 한다.컴퓨터 시스템은 4가지의 구성요소로 이루어져 있다.기본적인 computing resource를 제공하는 Hardware가 있다. CPU, memory, I/O device 등이 이에 속한다.두번째로 Operating system 즉 운영체제는 다양한 Aplication Program과 유저가 Hardware를 사용하는 것을 제어하고 조정하는 역할을 한다.세번째로 Application program은 사용자가 연산할 문제가 있을 때 이를 해결하기 위해 시스템 자원을 사용하는 방법을 정의한다. 우리가 흔히 얘기하는 응용프로그램이라고 보면된다.. 말만 거창함..네번째로 유저는 사람, 기계, 다른 컴퓨터 등을 의미한다.
  • 경쟁에서 질서 있는 접근을 보장하기 위해 memory controller가 제공되며 메모리 접근을 동기화 시켜준다.
  • Operating system kernel 의 init과 같은 첫번째 프로세스를 실행한다.
  • 컴퓨터 하드웨어는 CPU, Memory, I/O 장치로 이루어져 있고 사용자의 목적에 따라 사용하는 응용프로그램들이 있다.운영체제는 다양한 사용자를 위해 다양한 응용 프로그램간의 하드웨어 사용을 제어하고 조정하는 역할을 하고 있다.또 컴퓨터 시스템이 동작할 때 자원을 적절하게 사용하는 방법을 제공한다.운영체제의 목적은 일단 응용프로그램을 실행하고 사용자의 문제를 더 빠르게 해결하는 것과 컴퓨터 시스템을 사용하기 편하게 만드는 것이라 할 수 있다.운영체제를 정의하자면 첫번째로 Resource 할당자라고 할 수 있다. 즉 모든 Resource들을 관리하고 Resource 요청에 대해 효과적이고 공정한 Resource 사용을 할당하는 역할을 한다.컴퓨터의 부적절한 사용을 방지하기 위해 응용 프로그램을 제어하는 역할도 한다.일반적인 정의로는 운영체제는 일반적으로 커널이라 부르는 컴퓨터에서 항상 수행되는 프로그램이고 다른 모든 것은 응용프로그램이다.
  • 인터럽트가 발생하면 Operating system은 register의 값과 Program counter를 특정한 공간에 저장해 CPU의 현재 실행하고 있는 상태를 저장합니다그리고 Interrupt에 따라 고정된 Service routine의 시작주소를 가져와 실행합니다Service routine이 끝나면 interrupt되기 전에 실행 중이였던 Process를 다시 시작합니다
  • Synchronous I/O방식과 Asynchronous I/O 방식이 있는데 Synchronous I/O 방식은 다음 인터럽트까지 기다리고 I/O가 작동 후, I/O작동이 완료되면 통제권을 다른 프로그램에 반환한다Asynchronous I/O 방식은 완료를 기다리지 않고 다른 프로그램에 반환하는 방식이다.
  • Synchronous I/O방식과 Asynchronous I/O 방식이 있는데 Synchronous I/O 방식은 다음 인터럽트까지 기다리고 I/O가 작동 후, I/O작동이 완료되면 통제권을 다른 프로그램에 반환한다Asynchronous I/O 방식은 완료를 기다리지 않고 다른 프로그램에 반환하는 방식이다.Synchronous방식의 경우 I/O요청이 1개지만 Asynchronous 방식은 구조가 이러하므로 여러개가 존재할 가능성이 있다.때문에 다음 피피티에 있는 것이 필요하다
  • Device Status Table을 통해 이와 같이 어떤 요청이 들어와 있는지를 저장해야 할 필요가 있다.
  • 메모리에서 Register로 옮기는 load와 반대로 Register의 내용을 memory로 옮기는 store 명령을 통해 상호 작용이 이어진.보통 DRAM이라 불리는 반도체 기술로 구현된다.Mainmemory를 사용하는 가장 흔한 구조인 폰 노이만 시스템에서는 이와 같은 순서로 main memory를 사용한다.Memory에서 명령을 읽어오고 그것을 instruction register에 적재한다.Instruction을 해독해 피연산자가 필요한경우 memory에서 load한다. 그 이후 memory에 다시 store하는 instruction이엿다면 그를 실행할 수 있다.빠른 속도를 가지고 있지만 메인 메모리를 일반적인 프로그램과 자료를 저장하는 저장공간으로 활용하지 않는 이유로는이들을 영구적으로 저장하기에는 너무 저장공간이 작고 전원이 공급되지 않을 경우 그 내용을 잃어버리는 휘발성 저장 장치이기 때문이라고 할 수 있다.그러므로 컴퓨터 시스템은 보조 저장장치를 제공한다.
  • Multiprocessor system은 여러개의 CPU를 사용하기 때문에 갯수에 거의 비례하게 성능이 향상된다. 하지만 비례하지 않는 이유는 공유하는 메모리에 대한 접근에 대한 오버해드가 발생하기 때문에 비례하진 않는다한개의 CPU가 문제가 생기더라도 다른 친구들이 있기 때문에 신뢰성, 융통성이 좋아진다. 그리고 스케줄링을 통해 모듈 단위의 동시 연산이 가능해 진다
  • Multiprocessor system은 여러개의 CPU를 사용하기 때문에 갯수에 거의 비례하게 성능이 향상된다. 하지만 비례하지 않는 이유는 공유하는 메모리에 대한 접근에 대한 오버해드가 발생하기 때문에 비례하진 않는다한개의 CPU가 문제가 생기더라도 다른 친구들이 있기 때문에 신뢰성, 융통성이 좋아진다. 그리고 스케줄링을 통해 모듈 단위의 동시 연산이 가능해 진다비대칭형 클러스터링은 한 컴퓨터를 제외한 다른 컴퓨터가 활성 서버로서 작용하고 한 컴퓨터가 대기 상태를 하고 있다가 이상이 있는 컴퓨터 대신 활성 서버로 작용하는 방식이다대칭형 클러스터링은 모든 컴퓨터가 서로 이상이 있는지 확인하여 이상이 있을 경우 다른 컴퓨터가 작업을 수행한다. 모든 하드웨어가 다 사용되기 때문에 효율적이다 할 수 있다.
  • 운영체제가 하는 가장 중요한 능력은 Multiprograming을 할 수 있는 능력이다. 일반적으로 사용자는 CPU 또는 I/O 장치를 항상 사용하고 있을 수 없기 때문에 CPU가 수행할 작업을 항상 가지게 함으로써 CPU이용률을 증가시켜야 한다.
  • Virtual memory를 제공함으로써 해결한다. Virtual memory는 main memory를 크고 균등한 저장 장치의 배열로 추상화 해 주는 기능이다. Virtual memory의 가장 큰 장점은 physical memory로부터 logical memory를 분리 시켜 memory의 한계로부터 자유롭게 해준다는 점이다. 그로 인해 메모리 내가 아닌 곳에서 완벽하진 않지만 프로세스의 실행을 지원한다.
  • 앞에서 말했다시피.. 운영체제는 인터럽트에 의해 작동한다. I/O장치의 요청이나 응답해줄 사용자가 없다면 운영체제는 대기 상태에 있을 것이다. Trap은 0으로 나눈다거나 흔히 런타임 오류라고 하는 일이나 프로그램으로 부터 발생한 interrupt를 의미한다. 운영체제와 사용자는 컴퓨터 시스템의 하드웨어와 소프트웨어 resource를 공유하기 때문에 프로그램의 오류는 현재 수행중인 프로그램에만 문제를 일으키도록 보장해야 한다.예를 들면 무한 루프 같은 문제로 인해 다른 프로그램이 영향을 받아서는 안된다
  • 듀얼 mode operation은 잘못된 user로부터 OS나 잘못된 user 서로를 보호하는 방법을 제공한다. 여기서 Mode bit 라는 것이 사용되는데.User mode와 kernel mode 두가지가 있다. Privileged instruction 즉 시스템에 나쁜 영향을 미칠 가능성이 있는 명령들을 kernel mode에서만 사용하게 한다.User process가 그러한 명령어를 사용하기 위해서는 system call을 사용하는데 이 상황에서의 순서는 다음과 같다.이러한 처리를 하지 않을 경우 잘못된 user program이 OS 부분에 자료를 덮어 운영체제를 지우거나 파괴할 수 있고 여러 프로그램이 동시에 한 장치에 잘못된 user로부터 OS를, 잘못된 user 서로를 보호하는 방법 제공설치될 수도 있는 위험이 있다.
  • 제어가 돌아오도록 보장해야 하기 때문에 하는 짓
  • Process가 먼지에 대해 짚고 넘어가면 간단하게 말해서 실행중인 프로그램을 의미한다.프로그램은 파일이나 문서 머 이런것 처럼 그냥.. 패시브한 느낌이라면프로세스는 메모리에 얹어 질꺼구 다음 수행할 명령을 지정하는 program 카운터를 가진 active한 개체이다. 예를 들자면 프린트로 출력하는 task같은 경우에도 하나의 프로세스다. 즉 작업의 단위라고 할 수 있다.프로세스 메니지 먼트는 리소스 관리랑도 약간 비슷한 느낌인데 모든 프로세스는 여러가지 리소스를 필요로 하고 끝나고 재사용 가능한 리소스에 대해선 반환 받는다CPU는 process의 instruction을 차례대로 수행하며 한번에 하나만 처리한다. 여러개의 프로세스가 동일한 프로그램과 연관된어 있다고 하더라도 별도의 수행 순서로 취급멀티 쓰레드 프로세스의 경우 복수의 프로그램 카운터를 가지고 있어 각 쓰레드에서 하나의 프로세스를 처리하게 된다.
  • Register들은 Mainmemory를 위한 캐시라고 볼수 있고Main memory는 secondary memory를 위한 빠른 캐시라고 볼수 있다.
  • Register들은 Mainmemory를 위한 캐시라고 볼수 있고Main memory는 secondary memory를 위한 빠른 캐시라고 볼수 있다.
  • Transcript

    • 1. 운영체제 Sig Chapter 1 : Introduction
    • 2. 목적 Operating System의 주요 구성 요소에 대한 전체적인 그림 Computer System 구조에 대한 기본 지식
    • 3. Computer System의 구성요소 Hardware – 기본적인 Computing resource  CPU, memory, I/O device Operating system  다양한 Application Program과 유저가 Hardware를 사용하는 것을 제어, 조정 Application program  사용자의 Computing problem를 해결하기 위해 System resource를 사용하는 방법을 정의  Word processor, compiler, web browser, database system, game User  사람, 기계, 다른 컴퓨터 등
    • 4. Computer System의 구성 memory에 대한 접근을 제공하는 공통 bus에 의해 연결된 여러개의 device controller와 하나 이상의 CPU로 구성 CPU와 device controller는 memory cycle을 얻기 위해 경쟁
    • 5. Bootstrap Bootstrap 은 power-up이 되거나 reboot할 때 읽어짐  보통 ROM이나 EPROM에 저장  Firmware 역할  System의 모든 것을 초기화  Operating system kernel을 memory에 적재하고 실행
    • 6. Operating System? 다양한 사용자를 위한 다양한 응용 프로그램간의 하드웨어 사용을 제어하고 조정 Computer System이 동작할 때 resource를 적절하게 사용하는 방법을 제공 Operating System의 목적  응용프로그램을 실행하고 사용자의 문제를 해결  Computer system을 사용하기 편하게 만드는 것 Operating System의 정의  OS is a Resource allocator  OS is a Control program
    • 7. Interrupt hardware나 software는 interrupt를 통해 event 발생의 신호를 알린다 Hardware는 system bus를 통해 Software는 system call operation을 통해 Interrupt를 발생시킨다.
    • 8. Interrupt Handling Interrupt 발생 Operating system은 register와 program counter를 저장함 으로써 CPU의 상태를 저장 Interrupt 에 따라 다른 Service routine이 실행 Service routine이 끝나면 interrupt되기 전의 실행중이였던 Process 를 다시 시작
    • 9. I/O Structure 일반적인 순서  I/O request  CPU는 Device Controller의 Register에 필요한 값을 Store  Device Controller는 Register의 내용을 조사  연산  연산 완료를 CPU에 interrupt
    • 10. I/O Structure Synchronous Asynchronous
    • 11. I/O Structure Synchronous Asynchronous
    • 12. Device Status Table
    • 13. I/O Structure Direct Memory Access Structure (DMA structure)  I/O device 의 데이터는 Device controller에 의해 local buffer로 이동  But 데이터의 크기가 클 경우 memory 적재에 부담이 생긴다  DMA는 이 이동에 CPU의 개입을 피하는 방식  Device controller는 block단위의 data를 buffer에서 main memory로 store  Block 전송 완료마다 interrupt를 보내 CPU에 알림
    • 14. Storage Structure Main memory  유일하게 CPU가 직접적으로 접근할 수 있는 대량 storage device  Load, Store 명령  Dynamic Random-Access Memory(DRAM)  폰 노이만 구조 시스템  Memory에서 instruction을 load해 instruction register에 적재  Instruction 해독  필요한 Operand 을 memory에서 load한다  Instruction 실행 이후 memory에 다시 store할 수 있다.  Main memory의 한계  저장공간이 적다  휘발성 storeage
    • 15. Storage Structure Secondary storage  Main memory의 한계를 깨기 위해 등장  대량의 자료를 영구하게 보존할 수 있음  Magnetic disk - 일반적인 Secondary storage  Cash memory, CD-ROM, 자기 테이프
    • 16. Storage Structure
    • 17. Computer system Architecture Single-Processor System  하나의 CPU Multiprocessor System  여러개의 CPU  성능이 좋으며 신뢰성, 융통성, 모듈 단위의 확장이 가능
    • 18. Computer system Architecture Clustered system  여러 개의 시스템을 결합  LAN같은 고속 connection으로 연결  높은 availability  Asymmetric Clustering  한 컴퓨터가 hot-standby mode 유지  Symmetric Clustering  모든 Computer가 서로 감시
    • 19. Operating System Structure Multiprograming  여러 job를 memory에 적재  Memory에 있는 job 중 하나를 선택 실행  I/O 의 종료를 기다리는 등의 상황이 생기면 다른 job를 수행  기다리는 상황이 끝나면 CPU는 다시 하던 job 수행  Time sharing / multi-tasking  여러 작업이 동시에 수행 - 즉 memory에 동시에 유지  모든 process들을 Disk의 job pool에 보관  Job pool에서 메모리에 적재할 job을 선택하는 것이 Job scheduling  Memory에 있는 job의 처리하는 순서를 CPU scheduling
    • 20. Operating System Structure Swapping  적절한 respond time 보장  한가지 process가 main memory보다 클 경우  process을 Main memory -> Disk Disk -> Main memory  Virtual Memory  실제 main memory 크기 보다 logical memory를 크게 잡게 해줌.
    • 21. Operating System Operations OS는 Interrupt driven Software의 error나 request는 exception/trap 발생  이는 software에서 interrupt를 발생  나누기 0이나 요청 등등. Interrupt에 대해 다른 처리를 결정  Interrupt service routine Program의 error는 program내에서만 문제를 일으키도록 보장
    • 22. Operating System Operations Dual-mode operation  잘못된 user로부터 OS를, 잘못된 user 서로를 보호하는 방법 제공  Mode bit  User mode(1)/kernel mode(0)  몇몇 instruction는 kernel mode에서만 수행 가능  System call – kernel mode로 전환 / 실행 / 돌아갈때 user mode
    • 23. Operating System Operations Timer  OS가 CPU에 대한 제어를 유지할 수 있도록 보장  무한루프 방지  OS는 할당된 제한 시간을 초과하면 그 프로그램을 종료
    • 24. Process Management Process – 실행중인 program  Program – passive / 파일 내용같은..  Process – active / program counter를 가진.. Process는 수행하기 위해 여러 resource를 필요로 함 / 끝나면 반환 CPU 는 process의 instruction을 차례대로 수행 Multi thread process의 경우 여러개의 Program counter
    • 25. Process Management OS의 Process Management  User process / system process의 생성 및 제거  Process의 일시 중지와 재실행  Process synchronize를 위한 기법 제공  Process communication을 위한 기법 제공  Deadlock을 처리하는 기법 제공
    • 26. Memory Management Program 수행을 위해서는 반드시 절대주소로 mapping 절대 주소를 생성 / memory의 Program Instruction과 자료에 접근 Program 종료 시 memory 공간을 가용으로 선언 Memory에 여러 개의 Program을 유지  Memory Management 필요
    • 27. Memory Management OS의 Memory Management  Memory의 어느 부분이 현재 사용되고 있으며 누구에 의해 사용되고 있는지 추적  어떤 process들을 memory에 store하고 delete 할 것인지를 결정  필요에 따라 memory 공간을 Allocating / deallocating
    • 28. Storage Management OS는 Storage Device의 Physical 특성을 추상화  Logical한 저장 단위인 file 정의 File을 physical 매체로 mapping하여 접근 File System Management  OS는 large Storage device와 그것을 제어하는 device를 관리함  추상적 개념 구현 OS의 File Management  File 생성 / 제거  Directory 생성 / 제거  File / Directory 조작을 위한 primitive 제공  File을 Secondary Storage device로 mapping  비휘발성 Storage device 에 파일을 backup
    • 29. Storage Management Large Storage Device Management  Secondary Storage Device는 빈번하게 사용  효율적으로 사용해야한다.  OS의 Disk Management  Free-space 관리  Storage Device 할당  Disk Scheduling
    • 30. Storage Management Cashing  빠른 연산 속도의 저장공간  다시 사용될 활률이 높은 Data를 담는다  CPU는 Cash를 확인하고 없다면 main memory에서 가져온다.  Index register 같은 CPU 내부의 Register  Main Memory
    • 31. Storage Management Cashing  빠른 연산 속도의 저장공간  다시 사용될 활률이 높은 Data를 담는다  CPU는 Cash를 확인하고 없다면 main memory에서 가져온다.  Index register 같은 CPU 내부의 Register  Main Memory Magnetic Disk Main Memory Cash Hardware Register
    • 32. Storage Management I/O system  특정 Hardware Device의 특성을 숨김  Device Driver 만 특성을 알고 있다  구성요소  Buffering, Cashing, Spooling – Memory Management 요소  Device Driver Interface
    • 33. Protection and Security Protection  Resource 에 대해 Program, Process, user의 접근을 제어  Subsystem간의 Interface에서 잠재적인 오류를 검출  신뢰성 증가 Security  외부 또는 내부의 공격을 방어 이 둘을 제공하기 위해 사용자를 구별  식별자의 리스트  프로세스나 쓰레드에 사용
    • 34. Distribute System Distribute System은 물리적으로 떨어져 있는 Computer들의 집합 네트워크로 연결  Resource 접근 TCP/IP 유형  LAN (근거리 통신망)  한 방, 한층, 또는 한 건물 연결  WAN (원거리 통신망)  건물, 도시, 국가 사이를 연결  MAN (매트로 폴리턴 에어리어 네트워크)  도시 내의 건물들을 연결  SAN (스몰 에어리어 네트워크)  짧은 거리를 연결
    • 35. Storage Management I/O system  특정 Hardware Device의 특성을 숨김  Device Driver 만 특성을 알고 있다  구성요소  Buffering, Cashing, Spooling – Memory Management 요소  Device Driver Interface