본문 바로가기
728x90

운영체제8

[OS운영체제] 권영진 교수님 OS 강의_2 (카이스트 전산학부) [OS운영체제] 권영진 교수님 OS 강의_2 (카이스트 전산학부) 1부 c를 대신해 RUST 를 사용하려는 움직임이 있다. RUST로 OS로 만들고 있다. 핀토스를 직접 안짜고 이해만 하고 있어도 프로그램을 짜는데 도움이 된다. -> 커널과 유저가 해야하는 일 각각을 알고 있어야 유저가 뭘 해야하는지 안다 mmap file-backed (read, write) MAP_ANONYMOUS - stack, heap mmap과 write(fd, buf, 3)는 똑같은 기능. 하지만 성능이 다르다. mmap은 kernel이 바로 storage에 복사 read write는 한 번 복사한 후에 kernel이 DMA로 storage에 복사 1강 정리 Abstraction process - machine thread -.. 2021. 10. 11.
[pintos] Project 1_alarm [pintos] Project 1_alarm pintos는 기본 기능들만 구현된 작은 운영체제이다. 마치 tiny web server처럼 이 운영체제에는 실행중인 스레드를 잠시 재우고 다른 스레드에서 진행하는 하는 기능이 있는데, 처음에는 busy waiting 방식으로 구현되어 있다. 이를 Sleep / Awake로 구현하는 것이 첫 번째 과제이다. Busy waiting 구현 busy waiting은 매 시간 자고 있는 스레드를 깨워 시간을 확인한 후 아직 깨울 시간이 안됐으면 다시 재운다. 이를 계속 반복하다 꺠어날 시간이 되었을 때 깨우는 방식이다. 이는 매우 비효율적인 방식으로 많은 CPU 시간을 낭비한다. busy waiting은 아래와 같이 구현되어 있다. thread_yield 함수로 sc.. 2021. 10. 4.
[PintOS] 디버깅 도구(Debugging Tool)_printf, ASSERT, __attributes__, backtraces [PintOS] 디버깅 도구(Debugging Tool)_printf, ASSERT, __attributes__, backtraces Printf 코드 사이사이에 printf 함수를 넣어 출력을 통해 디버깅 할 수 있다. 간단하지만 효과적인 방법 ! ASSERT 표준 c library 중 하나인 assert.h 에 있는 매크로이다. pintos 에서는 에 구현되어 있다. /* NDEBUG는 디버그 모드가 아닌경우(릴리즈 모드)를 말한다.(Not DEBUG) * #ifndef는 매크로가 정의되지 않은 경우에만 코드를 컴파일 함. * ASSERT 매크로는 조건이 맞지 않을 때 프로그램 중단 */ #ifndef NDEBUG #define ASSERT(CONDITION) \ if ((CONDITION)) { }.. 2021. 10. 3.
[프로그래밍] bit, byte 2진수, 16진수 관계 정리 [프로그래밍] bit, byte 2진수, 16진수 관계 정리 bit, byte의 관게 및 2진수, 16진수로의 변환이 익숙해지는 것은 컴퓨터 시스템 이해의 기본이다. 그 기본이 없어... 정리를 해봐야겠다 ㅋㅋ 2진수와 16진수 16진수 한 자리는 16가지 수의 표현이 가능하다. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) 그러므로 2진수 한자리는 2개, 16진수 한자리는 16개를 표현할 수 있으므로 "16진수 1자리 = 2진수 4자리" 를 기억하는 것이 포인트! 그러므로 16진수 한자리는 4 bit에 해당된다. bit 와 byte 그리고 2진수와 16진수 bit는 기본적으로 2진수 한 자리를 표현하며 0과 1 두가지로 표현된다. (이것은 switch의 on /.. 2021. 9. 11.
[Operating System 운영체제] Virtual Memory(가상 메모리) [Operating System 운영체제] Virtual Memory(가상 메모리) Non-Continuous allocation Virtual Storagy(Memory) - Physical or RAM memory + swap memory - Non-continuous allocation - 사용자 프로그램을 여러 개의 block으로 분할 - 실행 시, 필요한 block들만 메모리에 적재, 나머지는 swap device(가상 메모리)에 존재 - 기법들 Paging system Segmentation system Hybrid paging/segmentation system Address Mapping - Relative address(상대주소) : 프로그램의 시작 주소를 0으로 가정한 주소 - Relo.. 2021. 9. 10.
[Operating System 운영체제] Computer System Overview 02 [Operating System 운영체제] Computer System Overview 02 운영체제의 역할 1. 운영체제의 역할 1) User Interface(편리성) CUI(Character user interface) GUI(Graphical User interface) EUCI(End-User Comfortable Interface) - 특수목적. ex) MP3 플레이어용 UI 2) Resource management(효율성) HW resource(processor, memory, I/O devices, Etc.) SW resource(file, application, message, signal, Etc.) 3) Process(실행 주체) and Thread(가벼운 프로세스) managemen.. 2021. 8. 31.
728x90