본문 바로가기

✏️/OS

(4)
[OS] xv6 1. xv6 make qemu-nox : gui 없이 cli 모드로 ! init.c 웰컴 메시지 등 수정 가능 ls > 커멘드 라인에서 지원하는 명령어 확인 가능 종료 하는 법 : 컨트롤 + A > (qemu 모드인 상태에서) quit 유저 모드 - 시스템 콜에 대한 등록된 번호 : syscall.h - 시스템 콜을 만들면, 함수 프로토타입 : user.h - syscall mark로 확인 : usys.S // 모든 시스템 콜 -> trap으로 호출 커널 모드 - syscall 테이블 -> syscall.c : syscall 등록 // - sysfile.c >> stack에 값 가져오기 // 사용자가 보낸 인자를 읽어옴 - >> e.g. getnp() 등록 절차 1. 유저 모드 - syscall.h 등록..
[OS] 운영체제 연산 1. SW interrupt 1) Exception : 동기식 이벤트 - 내부적으로 CPU Control unit이 명령어의 실행 결과로 자주 발생 시킴 - e.g.) 0으로 나누기, page fault 2) Trap (= software interrupt) : (명시적 발생) 특별한 조건을 걸어놓고 조건에 부하하는 상황이 걸리게 하는 역할 - 각 상황에 맞는 handler 또는 서비스 루틴으로 매핑해줌 3) interrupt : 비동기식 이벤트 - 다른 하드웨어 장치가 CPU와 상관없이 발생시킴 - keyboard event, I/O interrupt, timer ticks 2, 이중 연산모드 운영체제에서 두 개의 분리된 연산모드 (사용자 모드와 커널 모드)를 필요로 한다. 시스템 부트 시 하드웨어는 ..
[OS] I/O operations 운영체제는 프로그램 실행 환경을 제공한다. 프로그램과 프로그램의 사용자에게 특정 서비스를 제공하는데, 어떤 서비스를 제공하는지 정리해보았다. 1. I/O operations - I/O device와 CPU는 동시에 실행 가능하다. - 여기서 I/O는 disck 와 controller의 버퍼 간에 이동 : 일반적으로 1개의 장치는 1개의 controller를 가지고 있다. (SCSI - 최대 7개 장치 관리) : devicee controller는 local buffer와 special register를 가지고 있다. - device driver : 모든 controller의 세부 정보를 알고 있다 : OS에게 일관적인 인터페이스를 제공 2. Accessing I/O Devices 1) Memory Map..
[OS] intro 운영체제를 공부하면서, 이번 포스팅에서는 운영체제operating system 이 무엇인지 간단하게 살펴보자. 운영체제로 들어가기에 앞서서 컴퓨터의 하드웨어, 소프트웨어에 대해서 짚고 넘어가도록 한다. 1. 컴퓨터 하드웨어의 구성요소 컴퓨터 하드웨어는 크게 메모리와 CPU, 그리고 각각 주변장치들(disk, usb, graphic)를 연결해주는 컨트롤러 또는 어댑터로 구성되어 있다. 보통 이러한 하드웨어들은 CPU와 통신한다. 예를 들어 CPU에서 disk controller로 I/O request를 요청하면 disk controller에서 interrupt를 발생시켜, 요청이 완료되었음을 알려주는 식으로 통신이 이뤄진다. 이러한 통신 방법은 CPU와 다른 장치들에서도 동일한 방식으로 통신한다. 2. 컴..