OS services to User

- ui : cli, gui와 같이 user interface를 제공한다.

- user program execution : 프로그램을 load해서 memory에 넣고 실행한다. 끝나면 종료한다.

- i/o operations : 입출력을 운영한다.

- file systems manipulation : 디스크를 관리하는 역할

- communication :  프로세스가 정보를 변경하면, 네트워크를 통해 컴퓨터 사이에 정보를 주고받는다.

- error detection : 말 그대로 에러를 감지한다.

 

OS Services for resource management

- resource : 하드웨어 - cpu, 메모리(시간적인 개념 - cpu로 1초에 끝나는, 10초에 끝나는)

- protection : 보호 -> 내부적

- security : 보안 -> 외부 침입x


Basic Operations

primitive operating systems : application <-> os <-> h/w

- 하나의 어플리케이션이 동작하는 동안, 다른 어플리케이션은 동작하지 못한다.

- 중간에 꺼지는 경우가 많고, cpu와 ram같은 자워들을 잘 활용하지 못한다.

 

Multitasking

동시에 multiple jobs을 수행하는 것이다. 여러가지 일들을 메모리에 올려놓고, 리소스를 그 때 그 때 필요한 프로세스에 제공한다. cpu와 i/o장치를 공유한다.

Multitasking이 나오게 된 이유는, cpu는 하나에 한 가지 일밖에 못한다. 그래서 어떻게하면 여러가지 일을 동시에 할 수 있는지 생각해보았고, process management를 통해 cpu를 빠르게 배분하면 동시에 하는 것처럼 보이지 않겠나로 접근하였다.

- memory management : 일은 무조건 메모리에 있어야 한다. 잘 안 쓰는 애들은 디스크에 저장한다.

multitasking[메모리가 여러개] / virtual[그대로 복사]

- i/o management : using i/o device takes a long time. 인터럽츠러머 다 쓰면 알려달라는 방식이다(지연방지).

- protection : 다른 job의 실행코드를 덮을 때 어떻게 보호할 것인지, A는 절대 B의 영역을 못 거드리게하고 권한에 따라 다른 프로세스 영역에 접근 못하도록 한다.

- process management : process=실행중인 프로그램 = os에서 관리하는 작업의 단위

hw1.txt -> hw1.exe(ssd안에 지워지지 않는 저장장치에 저장한다 = 기계어로 번역한 것 = 레시피)

hw1.exe를 실행 -> 코드가 메모리(dram)어딘가에 복사 + 작업공간까지 함께 할당 = 프로세스

프로그램(=chrome.exe) vs 프로세스(첫번째 창, 두 번째 창 = 클릭할 때마다 달라짐=메모리에 프로그램을 올리는 단위)

- file&stroage management : 파일들은 정보의 집합, 디스크를 다루는 방법

 

- i/o subsystem : 코드가 들어올 때 다른 ssd에 똑같은 명령을 실행하는 것 = device driver

- i/o request : os에 요청만 한다. (interrupt = 방해하다 = 일을 하고 있을 때 중단시키고 끼어든다)


interrupt

polling vs interrupt

polling : while문을 돌면서 계속 값이 들어오면 체크한다. 구현이 쉽다. ex) 10분마다 들어와서 밥 먹을래?

interrupt : 신경 안 쓰고 들어오면 말해달라 -> 배고프면 나한테 얘기해 밥 줄게, 루틴이 들어가서 구현이 힘드나 효율성이 좋다.

 

interrupt : 키보드에서 입력이 들어오면 interrupt가 들어온다. 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것이다.

- hardware interrupt : 마우스 움직임, 키보드, timer interrupts

- software interrupt : 예외(a/0), system calls(application이 os가 제공하는 함수들을 호출하는 것)

- interrupt handling : os가 실행되는 파일(kernel), 사용자가 실행되는 것들(user)

- interrupt vector : 0x38, kernel의 어딘가에 저장, 3번 interrupt는 interrupt vector 3번째 주소를 참조하세요.

- interrupt service routine : interrupt가 실행되는 코드들이 있는 곳으로 감. interrupt vector로 갔더니, 1번은 ~~로 2번은 ~~로 가라고 하는 느낌

728x90
반응형

'컴퓨터 공학 > 운영체제' 카테고리의 다른 글

운영체제01 - introduction  (0) 2021.10.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기