import {Input} from 'antd'

export default function App(){
	const inputRef = useRef<Input>(null);
    return (
    	<Input ref={inputRef}/>
        )
    }

라고 쓰면 다양한 오류가 발생한다.

 

import {Input} from 'antd'
import type {InputRef} from 'antd'
export default function App(){
	const inputRef = useRef<InputRef>(null);
    return (
    	<Input ref={inputRef}/>
        )
    }

라 쓰면 된다.

 

출처 : https://stackoverflow.com/questions/72577119/type-a-is-not-assignable-to-type-b-in-typescript-with-antdesign

 

Type A is not assignable to type B in typescript with antdesign

Hi guys I was writing this code in typescript with using ant design and I got this issue (TS2322). I wanted to use 'Input' from 'Ant Design' and set the first value as null. After that I was gonna ...

stackoverflow.com

 

 

이 분도 같은 강의 들으면서 deprecated나,  unused된 사용법 때문에 질문 하신것 같다.(코드가 똑같다.)

 

그 강의가 리액트 강의를 한번에 들을 수 있어서 장점이지만, 보다보면 최신 버전에서 바뀐게 많고, 버전 병기가 안되어 있어서, deprecated나 unused된 부분을 고치면서 듣는게 힘들다.

 

뭐 이런 부분에 대해 찾아가면서 공부하는 것도 공부의 일환이지만,

 

초보입장에서 따라치면서 배우는데, 빨간줄이 보이고 취소선이 보이면 당황스럽다.

 

직접적으로 질문을 할수도 없고, 강의에 대해서 최신버전 업데이트가 안 보여서 최신버전을 원하는 사람에게는 비추하고 싶은 강의가 되었다.

  • 설치하다보면 Storybook 명령어가 실행 안될때가 있다.
  • 그 이유는 에러로그를 쳐보면 package.json의 type이 module이라 생기는 문제이다.
  • 그래서 이 부분을 commonjs로 바꿔주거나 삭제해주면 되다.
  • 그리고 스토리북을 실행해보면 스토리북 화면이 안보이고, 일반 react 실행했을때 화면이 뜨는 경우가 있다.
  • 그때는 rm -rf node_modules/.cache 를 해주면 된다.
  • 아니면 --no-manager-cache 라는 flag를 줘서 캐슁된걸 사용하지 못하게 하면 된다.

동기식 입출력과 비동기식 입출력

  • 동기식 입출력
    • 프로세스가 입출력이 진행될때, instruction이 실행이 안될때
    • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    • 구현 방법1
      • I/O 끝날때까지 CPU를 낭비시킴
      • 매시점 하나의 I/O만 일어날수 있음
    • 구현 방법2
      • I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음
      • I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움
      • 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력
    • 프로세스가 입출력이 진행될때 instruction이 실행이 될 수 있을때
    • I/O 가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
  • 두 종류 모두 I/O의 완료는 인터럽트로 알려줌

Thread

  • Thread is basic unit of CPU utilization
  • 프로세스에서 CPU의 수행단위
  • Thread의 구성
    • program counter
    • register set
    • stack space
  • Thread가 동료 thread와 공유하는 부분(=task)
    • code section
    • data section
    • OS resources
  • 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다.
  • Process 하나에 프로세스 실행단위를 여러개를 두는게 Thread, 각 Thread마다 Program Counter와 register를 별도로 유지
  • Thread는 Stack은 별도, Process가 사용하는 state(상태), 자원은 공유하지만, PC와 register는 별도로 유지
  • 다중 스레드로 구성된 태스크 구조에서는 하나의 서버스레드가 blocked(waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행되어 빠른 처리를 할 수 있다.
  • 동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율과 성능 향상을 얻을 수 있다.
  • 스레드를 사용하면 병렬성을 높일 수 있다.(CPU가 여러개일때 가능)
  • 프로세스는 한개이기 때문에 PCB는 1개이고, Thread마다 별도의 PC와 Register를 따로 가지고 있다.
  • 스레드의 장점
    • 응답성 : Responsiveness
    • 리소스 공유 : Resource Sharing
    • 경제성 : Economy → createing & CPU switching thread
      • Solaris의 경우 2가지 overhead가 각각 30배, 5배
    • Utilization of MP Architectures
      • each thread may be running in parallel on diffrent processor

Implementation of Treads

  • Kernal Threads
    • 커널 스레드는 운영체제 커널이 스레드가 여러개인 것을 인지하고 있고, 스레드 변환시, CPU 스케쥴링과 컨텍스트 스위칭에 의해 작동된다.
      • Windows 95/98/NT
      • Solaris
      • Digital UNIX, Mach
  • User Threads
    • 라이브러리로 지원되는 스레드
    • 프로세스 내에 스레드가 여러개인걸 운영체제가 모르는 상황
    • 구현상의 제약점이 있다.

프로세스의 개념

  • Process is a program in execution

  • 프로세스의 문맥(context)

    • 프로그램의 코드가 어디까지 실행을 했는가, data의 변수가 어떻게 되었는가? Register에 어떤 값을 넣어놓고, instruction을 어디까지 실행을 해야했는가에 대한 모든 요소를 문맥이라 한다.
    • CPU의 수행상태를 나타내는 하드웨어 문맥
      • Program Counter
      • 각종 register
    • 프로세스의 주소공간
      • code,data,stack
    • 프로세스 관련 커널 자료구조
      • PCB(Process Control Block) - 운영체제는 프로그램이 실행될때마다, 프로그램을 컨트롤 하기 위한 1개의 PCB block이 생성된다.
      • Kernal stack - 각 프로세스의 코드를 실행 중에, 시스템콜이 일어났을때, 해당 프로세스만의 커널 스택
  • Time sharing, Multi Process이기 때문에, 현재 실행중인 프로세스가 다른 프로세스에게 넘겨줄때, 현재의 작업현황을 백업을 해놔야, 다음 실행때, 이어서 작업이 가능하다.

프로세스의 상태(Process State)

  • 프로세스는 상태가 변경되며 수행한다.

    • Running

      • CPU를 잡고 instruction을 수행중인 상태
    • Reday

      • CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족하고 있는상태)
    • Blocked(wait, sleep)

      • CPU를 주어도, 당장 instruction을 수행할 수 없는 상태
      • Process 자신이 요청한 event(I/O)가 즉시 만족되지않아 이를 기다리는 상태( 디스크에서 file을 읽어와야하는 경우 )
    • New : 프로세스가 생성중인 상태

    • Terminated : 수행이 끝난 상태

    • CPU의 Redey Queue에 대기를 한다. 그러다가 CPU에서 Process가 동작을 하다가, I/O 작업이 있을때, Disk Queue에서 대기를 하면서 Process의 상태를 blocked(wait/sleep) 상태로 바뀌어서 들어간다.

    • 이러한 큐들은 Kenal Address space의 자료구조로 있고, 프로세스의 상태를 조정하고, 위치에 따라 queue에 넣어준다.

      Process Control Block(PCB)

- 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보
- OS가 관리상 사용하는 정보
    - Process state, Process ID
    - scheduling information, priority
- CPU 수행 관련 하드웨어 값
    - Program counter, registers
- 메모리 관련
    - Code, data, stack의 위치정복
- 파일 관련
    - Open file descriptors

문맥 교환(Context Switch)

  • CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정
  • CPU가 다른 프로세스에게 넘어갈때 운영체제는 다음을 수행
    • CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장
    • CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴
  • System call이나 Interrupt 발생시 반드시 context switch가 일어나는 것은 아님
  • System call이나 interrupt 발생시 Kernal mode로 변환이 일어나지만, 이 것을 Context switch를 의미하지 않고, 사용자 프로세스가 변환이 일어나는 것이 Context switch라고 한다.
  • 운영체제로 변환이 일어날때에도 PCB에 저장을 하기 하지만, Context switch가 일어나는 경우보다 부담이 덜하다. ( cache memory flush : 프로세스가 달라지면, 캐쉬 메모리를 다 지워버리는 것을 의미)

프로세스를 스케쥴링하기 위한 큐

  • Job queue
    • 현재 시스템 내에 있는 모든 프로세스의 집합
  • Ready queue
    • 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
  • Device queues
    • I/O device의 처리를 기다리는 프로세스의 집합
  • 프로세스들은 각 큐들을 오가며 수행된다.
  • Linked List (head, tail)
  • 인터럽트일때 ready queue에 대기를 하는것을 아니다.

스케줄러

  • Long-term-scheduler(장기 스케쥴러 or job scheduler)
    • 시작 프로세스 중 어떤 것들을 ready queue로 보낼지 결정
      • 메모리가 생성 시, memory에 올라가는걸 허락
    • 프로세스에 memory을 주는 문제
    • degree of Multiprogramming을 제어
      • 메모리에 프로세스의 수를 제어
    • time sharing system에는 보통 장기 스케쥴러가 없음(무조건 ready)
      • 우리가 사용하는 대부분의 시스템에서는 장기 스케쥴러가 없음
  • Short-term scheduler(단기 스케쥴러 or CPu scheduler)
    • 어떤 프로세스를 다음번에 running 시킬지 결정
    • 프로세스에 CPU를 주는 문제
    • 빨라야함(ms 단위)
  • Medium Term Scheduler(중기 스케줄러 or Swapper)
    • 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫒아냄
    • 프로세스에게서 memory를 뺏는 문제
    • degree of Multiprogramming을 제어
      • 메모리에 동시에 올라간 프로그램 수가 많으면, 프로세스를 뺏는다.
    • 요즘 컴퓨터에서 쓰이는 방법

프로세스의 상태 2(현대 운영체제)

  • Running , Ready, Blocked은 동일
  • Suspended(stopped) : 중기 스케줄러 때문에 생긴 개념
    • 외부적인 이유로 프로세스 수행이 정지된 상태
    • 프로세스는 통째로 디스크에서 swap out 된다.
      • 사용자가 프로그램을 일시정지시킨 경우(break key)
      • 시스템이 여러이유로 프로세스를 잠시 중단시킴
  • Blocked는 자신이 요청한 event가 만족되면 Ready로 바뀜
  • Suspended는 외부에서 resume 해주어야 Active

컴퓨터 시스템 구조

  • CPU는 Program Counter 라는 레지스터가 가리키는 메모리 주소의 instruction의 일만 진행
  • CPU는 interrupt line을 instruction을 실행전 매번 확인을 후, interrupt이 들어오면, 운영체제로 권한이 바뀜
  • I/O에 접근하는 모든 권한은 mode bit이 0일때에만 가능
  • 인터럽트는 하드웨어 인터럽트, 소프트웨어인터럽트가 있다
    • 하드웨어는 I/O가 요청하는 인터럽트
    • 소프트웨어 인터럽트는 트랩이라고 하며, Exception이거나 system call이 있다.

동기식 입출력과 비동기식 입출력

  • 동기식 입출력(synchronous I/O)

    • I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
    • 구현방법 1
      • I/O가 끝날 때까지 CPU를 낭비시킴
      • 매시점 하나의 I/O만 일어날 수 있음
    • 구현방법2
      • I/O가 완료될때까지 해당 프로그램에게서 CPU를 빼앗음
      • I/O 처리가 기다리는 줄에 그 프로그램을 줄 세움
      • 다른 프로그램에게 CPU를 줌
  • 비동기식 입출력

    • I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
  • 두 경우 모두 I/O의 완료는 인터럽트로 알려줌

DMA(Direct Memory Access) Controller

  • DMA는 CPU말고도 메모리에 접근할수 있는 콘트롤러
  • DMA는 I/O의 데이터를 메모리에 카피를 해서 올려놓고, 어느 정도 모이면 인터럽트를 걸기
  • 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
  • CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block단위로 직접 전송
  • 바이트 단위가 아니라, block 단위로 인터럽트 발생시킴

서로 다른 입출력 명령어

  • I/O를 수행하는 special instruction에 의해
    • 메모리에 접근하는 address가 따로있고, device address가 따로 있는 방식
  • Memory Mapped I/O에 의해
    • 구분없이 Memory address로 위치로 구분할때

저장장치 계층

  • 위로 갈수록 Speed가 빨라지고, Cost가 비싸지고, 위로 갈수록 용량이 적고, 휘발성의 차이
  • Executable은 CPU가 직접적으로 접근이 가능한 저장장치, byte 단위로 접근 가능
  • 하드디스크는 섹터단위로 접근

프로그램의 실행(메모리 load)

  • 프로그램을 실행하실 그 프로그램의 독자적인 Address space가 생긴다.
  • code,data,stack 이 생긴다.
    • code : 기계어 코드
    • data : 전역변수
    • stack : 함수를 호출하거나 리턴할때 쓰는 용도
  • 프로그램의 모든 메모리를 전부 올리는게 아닌, 필요한 부분들만 올린다.
  • 디스크의 swap area : 현재는 쓰지 않지만 나중에 필요할지 모르는 메모리들을 적재시켜놓는다.
  • swap area는 메모리의 연장 용도
  • address translation : 하드웨어의 도움을 받아서, 프로세스의 address space의 상대적인 주소에서, 실제 물리적인 메모리의 주소의 위치로 변화시켜주는 역할

커널 주소 공간의 내용

  • 시스템콜, 인터럽트 처리 코드
  • 자원 관리를 위한 코드
  • 편리한 서비스 제공을 위한 코드
  • 각 프로세스들을 관리하기 위한 자료구조도 저장되어 있는 상태
    • Process Control Block
  • 사용자 프로그램마다, 독립적인 커널스택을 보유중

사용자 프로그램이 사용하는 함수

  • 함수(function)
    • 사용자 정의 함수
      • 자신의 프로그램에서 정의한 함수
    • 라이브러리 함수
      • 자신의 프로그램에서 정의하지 않고, 갖다 쓴 함수
      • 자신의 프로그램의 실행 파일에 포함되어 있다.
    • 커널 함수
      • 운영체제 프로그램의 함수
      • 커널 함수의 호출 = 시스템 콜

컴퓨터 시스템 구조

  • 각각의 io device들은 디바이스들을 조정하는 device controller가 작업을 해준다.
  • 디바이스 콘트롤러들도 작업공간이 필요한데, local buffer라 이야기한다.
  • cpu 내에는 memory보다 빠른 register라는 저장공간이 있다.
  • mode bit은 Cpu에서 실행중인 명령어가 사용자프로그램인지, 운영체제인지 구분해주는 것이다.
  • interrupt line : cpu의 실행 중인 명령을 멈추는 입력신호가 있는지 확인하기 위한거(지금 이해한거)
    • ex ) i/o에서 오는 신호가 왔을때
    • timer에서 지정된 시간을 썼다고 왔을때
  • time : 특정 프로그램이 CPU를 독점하는것을 막기 위한 하드웨어
  • 사용자 프로그램은 I/O에 직접적으로 instrunction을 할 수 없고, 운영체제에게 위임을 한다.
    • 보안상의 이유와 다른이유 때문에 사용자프로그램이 직접 요청을 금지시켰다.
  • 키보드 입력이 사용자 프로그램이 있다고 하면, 이 프로그램은 운영체제에 키보드 입력이 필요하다고, 요청을 보내고, 운영체제는 키보드 입력을 받을 수 있도록 작업을 한다.
  • 작업을 요청을 한뒤 이 프로그램은 키보드 입력이 들어올때까지는 다음 작업을 수행할 수 없으므로, 다른 사용자프로그램에게 제어권을 넘겨준다.
  • 그러다가, 키보드에서 입력이 들어오게 되면 interrupt line을 통해 cpu에 알려주게 되고, CPU에서는 다른 프로그램이 실행중이더라도 인터럽트가 들어왔기 때문에, 잠시 프로그램 실행을 멈추고, 제어권을 운영체제가 가지고 와, 키보드의 입력을 카피해서 키보드입력을 요구했던 프로그램에게 카피를 해준 뒤, 보통은 인터럽트를 당한 프로그램에게 제어권을 넘겨준다.

Mode bit

  • mode bit은 0일때에는 모니터모드(커널모드) 1일때에는 사용자모드(사용자 프로그램 수행)
  • 보안을 해칠 수 있는 중요한 멍령은 모니터모드에서만 수행가능
  • interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈
  • 사용자 프로그램에게 CPU를 넘기기전 mode bit을 1로 세팅
  • 사용자가 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않기 위한 보호장치

Timer

  • 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트 발생
  • 타이머는 매 클럭 1틱마다 1씩 감소
  • 타이머 값이 0이되면 타이머 인터럽트 발생
  • CPU가 특정프로그램이 독점하는 것으로부터 보호
  • 타이머는 timer sharing을 구현하기 위해 이용이 되고, 현재시간을 계산하기위해서도 사용한다.

Device Controller

  • I/O device controller
    • 해당 i/o 장치유형을 관리하기 위한 일종의 작은 CPU
    • 제어 정보를 위해 control register, status register를 가짐
      • 이 register는 CPU에서 해야할 작업들에 대한 내용이 담기는 것
    • local buffer를 가짐
      • I/O의 실행결과에 대한 데이터들을 저장하거나 출력을 위한 데이터를 저장하는 저장소
  • I/O는 device와 locl buffer 사이에 일어남
  • Device controller는 I/O가 끝났을 경우 interrupt로 CPU에 그 사실을 알림
  • device driver : OS 코드 중 각 장치별 처리루틴 software
  • device controller : 각 장치를 통제하는 일종의 작은 CPU hardware

DMA Controller

  • direct memory access controller
  • 메모리에 직접적으로 접근할 수 있는 컨트롤러
  • I/O 장치의 빈번한 인터럽트를 줄여주기 위한 장치
  • I/O 장치의 저장된 데이터를 메모리에 직접 적재를 해주고, 모와서 CPU에 알려주는 역할

입출력의 수행

  • 모든 입출력 명령은 특권 명령
  • 사용자 프로그램이 I/O을 하는법
    • 시스템 콜
      • 사용자 프로그램이 운영체제에게 I/O 요청을 하는 거
      • 일반적인 함수는 사용자프로그램이 자기가 할당된 메모리 내에서 주소를 바꿔가면서 실행이 되지만, I/O 요청은 사용자 프로그램 메모리를 벗어난 OS의 메모리에 요청을 보내야하기 때문에 직접적으로 점프를 하는것이 불가능
      • 그렇기 때문에 사용자프로그램은 소프트웨어적으로, CPU에게 I/O 요청이 있음을 interrupt신호를 보냄
      • 이 interrupt 신호를 받은 CPU은 interrupt가 왔기 때문에 mode bit을 0으로 전환 후 OS모드 실행
    • trap을 사용하여 인터럽트 벡터의 특정위치로 이동
    • 제어권이 인터럽트 벡터가 가리키는 인터럽트 서비스 루틴으로 이동
    • 올바른 I/O 요청인지 확인후 I/O 수행
    • I/O 완료시 제어권을 시스템콜 다음명령으로 옮김

인터럽트

  • 인터럽트 당한시점의 레지스터와 program counter를 save 한 후 CPU의 제어를 인터럽트 처리 루틴에 넘긴다.
  • 넓은의미
    • interrupt (하드웨어 인터럽트 )
    • trap(소프트웨어 인터럽트)
      • 프로그램이 오류를 범한 경우 (Exception)
      • 프로그램이 커널 함수를 호출하는 경우 (System call)
  • 인터럽트 벡터
    • 해당 인터럽트의 처리 루틴 주소를 가지고 있음
  • 인터럽트 처리루틴 ( 인터럽트 서비스 루틴, 인터럽트 핸들러)
    • 해당 인터럽트를 처리하는 커널 함수

시스템 콜

  • 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출 하는 것

GET all list

GET detail : retrieve

POST create 

PUT update

DELETE delete

PATCH partial_update

운영체제란 무엇인가?

  • 운영체제란 ?
    • 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모드 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
    • 협의의 운영체제
      • 운영체제의 핵심 부분으로 메모리에 상주하는 부분
    • 광의의 운영체제
      • 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념

운영체제의 목적

  • 컴퓨터 시스템의 자원을 효율적으로 관리
    • 프로세서 기억장치 입출력 장치 등의 효율적 관리
      • 사용자 간의 형평성 있는 자원 분배
      • 주어진 자원으로 최대한의 성능을 내도록
    • 사용자 및 운영체제 자신의 보호
    • 프로세스, 파일, 메시지 등을 관리
    • 효율성이 높게 관리, 하지만 효율성만 최고로 할시, 형평성이 맞지 않게 된다.
  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
    • 운영체제는 동시사용자/ 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
    • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행

운영체제의 분류

  • 단일 작업(single tasking)
    • 한 번에 하나의 작업만 처리
  • 다중 작업(multi tasking)
    • 동시에 두개 이상의 작업처리
  • 최근에는 대부분의 운영체제는 다중작업이 가능한 운영체제
  • 단일 사용자(single user)
    • MS-DOS,MS Windows
  • 다중 사용자(multi user)
    • UNIX, NT server
  • 일괄 처리(batch processing)
    • 작업 요청의 일정량 모아서 한꺼번에 처리
    • 작업이 완전 종료될 때까지 기다려야함
  • 시분할(time sharing)
    • 여러 작업을 수행할때, 컴퓨터 처리능력을 일정한 시간단위로 분할하여 사용
    • 일괄처리 시스템에 비해 짧은 응답시간을 가짐
    • interactive한 방식
  • 실시간(Realtime)
    • 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야하는 실시간 시스템을 위한 OS
      • 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
    • 실시간 시스템 개념 확장
      • Hard realitime system
      • Soft realtime system

용어 정리

  • multitasking : 다수의 작업이 돌아가면서 진행되는 방식
  • multiprogramming : 메모리에 여러 프로그램이 올라가는 방식
  • time sharing : cpu의 시간을 분할하여 나누어 쓴다는 의미
  • multiprocess
  • Multiprocessor : 하나의 컴퓨터에 CPU가 여러개 붙어있는 컴퓨터

운영체제의 종류

  • 유닉스(UNIX)
    • 코드의 대부분을 C언어로 작성
    • 높은 이식성
    • 최소한의 커널 구조
    • 복잡한 시스템에 맞게 확장 용이
    • 소스코드 공개
    • 프로그램 개발에 용이
  • DOS(Disk Operation System)
    • MS사에서 1981년 IBM-PC를 위해 개발
    • 단일 사용자용 운영체제, 메모리 관리능력의 한계
  • MS Windows
    • MS사의 다중 작업용 GUI 기반 운영체제
    • Plug and Play, 네트워크 환경 강화
    • DOS용 응용 프로그램과 호환성 제공
    • 풍부한 자원 소프트웨어

운영체제의 구조

  • CPU-memory - DISK - I/O device
  • CPU 스케줄링 : CPU를 어떻게 관리를 해줄까.?
  • 메모리 관리 : 한정된 메모리를 관리하는 방법
  • 파일 관리 : 디스크에 파일을 어떻게 보관하지
  • 입출력 관리 : 각기 다른 입출력 장치와 컴퓨터간에 어떻게 정보를 주고받게 하지.?

+ Recent posts