profile
개발자(물리)
post-thumbnail

Thread-Safe 란?

이전에 PintOS UserProgram 에 관한 글을 쓴적이 있었는데 그때 fork 시스템 콜에 대해 이야기 하면서 'fork 는 thread-safe 하지 않다.'라는 글을 인용했던 적이 있다. 그 당시에는 무슨뜻인지도 모르고 그냥 멋있어보여서 가져다 쓴것 같은데,

2022년 9월 11일
·
0개의 댓글
·
post-thumbnail

SW사관학교 정글 3기 취업후기

1. 비전공자의 커리어 전환 정글 3기가 끝나고 벌써 5개월이 다되가는 마당에 후기를 쓰게 되었다. 수료후 감사하게도 협력사에 바로 취업을 해서 정신없이 달려오다보니 한번쯤 돌아보는 시간이 필요하다는 생각이 들었고, 오랜만의 연휴를 맞이해서 여유가 생겨서이기도 하다.

2022년 9월 10일
·
0개의 댓글
·
post-thumbnail

[Project 3] Virtual Memory (2)

Uninitialized page. 핀토스 Virtual Memory 에서 다루는 page의 타입은 세가지다. Uninit type Anonymous type File-backed type anonymous 와 file backed는 이름에서 어느정도 특성과

2022년 1월 26일
·
0개의 댓글
·
post-thumbnail

[Project 3] Virtual Memory (1)

내 집 마련이란, 유저 프로세스에게도 나에게도 환상과 같은 것이다. 지난번 프로젝트에 이어서 Virtual Memory는 운영체제가 유저프로세스를 다루는지, 뿐만아니라 전반적인 Memory Management 에 대해서 배워볼 수 있었다.Project 2 가 User

2022년 1월 25일
·
0개의 댓글
·
post-thumbnail

mmap, munmap

mmap 이란? 메모리의 내용을 파일이나 디바이스에 대응(mapping)하기 위해서 사용하는 시스템 호출이다. 메모리관리와 mmap 프로세스간 기본적으로 메모리는 공유되지 않는다. -> 가상 메모리 공간을 쓰는 이유 이는 보호를 위해선 반드시 필요한 기능이지만

2022년 1월 25일
·
0개의 댓글
·
post-thumbnail

팀 '알리오 올리오' 주제소개

오프라인 코딩 스터디의 경험을 온라인에서도 똑같이 할 수는 없을까? 에서 출발한 '어디서든 함께, 코딩 스터디룸' 입니다.

2022년 1월 21일
·
0개의 댓글
·
post-thumbnail

[Project 2] User Program (2)

자식 프로세스는 부모 프로세스의 fork로부터 비롯된다. Remind. 지난번 포스트에 이어서 Project2 User Program에 대해 알아보자. 직전까지 했던게 OS가 사용자 프로그램을 어떻게 실행시키는지 구체적인 함수 스택영역에서 확인해보았다면 오늘은 그

2022년 1월 11일
·
0개의 댓글
·
post-thumbnail

[Project 2] User Program (1)

OS 입장에서 User는 마치 아무것도 모르고 바닥을 기어다니는 아기와 같다. 아기는 아무것도 모르고 막 만질테니 위험할만한건 미리 미리 치워놔야한다. Intro. pintos 를 비롯한 linux 운영체제는 사용자 프로그램이 직접 시스템에 영향을 미칠 수 없도록

2022년 1월 10일
·
0개의 댓글
·
post-thumbnail

Pintos project2 keywords

User mode vs. Kernel mode? kernel mode 시스템의 모든 메모리에 접근 할 수 있고 모든 CPU명령을 실행할수 있다. 운형체제 코드나 디바이스 드라이버같은 커널 모드 코드를 실행한다. cpu는 커널 모드 특권 수준에서 코드를 실행한다. (p

2021년 12월 31일
·
0개의 댓글
·
post-thumbnail

QEMU

Intro. 출처: 네이버클라우드 기술블로그 QEMU란 대표적인 에뮬레이터중 하나로써 매우 다양한 종류의 하드웨어를 소프트웨어로 구현해둔 Hypervisor 이다. Hypervisor 란? 여러개의 os 를 단일 물리 머신 위에서 스케줄링 할 수 있는 소프트 웨어

2021년 12월 30일
·
0개의 댓글
·
post-thumbnail

Race Condition

What is it? race condition이란 공용데이터에 대한 접근이 어떤 '순서'에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황을 말한다. Specific problems 경쟁 프로세스의 경우 세가지 제어 문제에 직면한다. Mutu

2021년 12월 30일
·
0개의 댓글
·
post-thumbnail

Use After Free

Use After Free? malloc 함수의 caching 기능 중 deferred coalescing 속성 존재. -> free 된 heap이 realloc될 때에 같은 사이즈로 요청 받을 수 잇는데, heap을 병합하거나 분할하는 시간을 절약하고자 free

2021년 12월 30일
·
0개의 댓글
·
post-thumbnail

Context switching

Why is Context switching needed? computer 가 매번 하나의 task 만 처리할 수 있다면 해당 task가 끝날때까지 다음 task는 기다릴 수 밖에 없다. 이는 반응속도가 매우 느리고 사용하기 불편하다. (당연) What is the

2021년 12월 30일
·
0개의 댓글
·
post-thumbnail

Scheduler

What is Scheduler? 프로세스를 스케줄링해주는 장치. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue: 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue: Devi

2021년 12월 30일
·
0개의 댓글
·

Assembly

Basic 레지스터 이름 앞에 %를 붙여서 레지스터를 나타낼 수 있다. (%eax)와 %eax는 엄연히 다른 역할을 한다. 괄호가 붙으면 해당레지스터에 메모리 주소가 들어있고, 그 메모리 주소가 가리키는 값을 나타낸다. 즉, 포인터다. 어셈블리 언어에서 사용

2021년 12월 30일
·
0개의 댓글
·
post-thumbnail

gdb 사용법

우선 gdb 를 설치한다. ubuntu 터미널에서 다음 명령어를 입력하면 된다. 내가 테스트 하고 싶은 파일들이 있는 폴더 (내 경우에는 /pintos/threads/build) 에 들어가서 원래 핀토스 테스트를 실행할때 쓰는 명령어는 였다면 이걸 gdb로 실행하

2021년 12월 30일
·
3개의 댓글
·
post-thumbnail

Malloc-lab(1)

지난번 링크드 리스트의 기초를 다루는 포스트에서 짤막하게 다뤘었던 '동적 메모리 할당'을 가능하게 만들어주는 할당기(allocator)를 만들어보려한다. 기본적으로 동적으로 메모리를 'Heap'에 할당하기위해 실제로 system call로서 malloc 이 어떻게 작동

2021년 12월 23일
·
0개의 댓글
·
post-thumbnail

Linked list with C (2)

Linked list 본격적인 링크드 리스트에 들어가기에 앞서 그림으로 간략히 설명해보고자 한다. (가상 메모리 상에서 물리적으로 붙어 있는 데이터그림들. 사이에서 next 포인터를 이용해 연결한 링크드 리스트 그림. 2개) 개념상으로는 그닥 어려울것 없어보인다.

2021년 12월 19일
·
0개의 댓글
·
post-thumbnail

Linked list with C (1)

C 언어는 F1 자동차와 같다. 엄청나게 빠르지만, 아무나 운전할순 없다. 리스트를 선언하면 가상머신으로 메모리를 알아서 할당하고 찾아주는 파이썬과 같은 언어와 달리, 우리의 츤데레 C는 직접 리스트의 원소들을 연결해주어야 한다.파이썬으로 프로그래밍을 처음 접했던 나로

2021년 12월 8일
·
0개의 댓글
·
post-thumbnail

Dijkstra Algorithm

어느 한 지점에서 모든 점으로 가는 최단 경로를 알고싶을때! 사용하는 다익스트라 알고리즘에 대해 알아보자놀랍게도 3주차 그래프 탐색을 공부하며 배웠던 다익스트라가 4주차에 배우는 DP를 사용하는 것이었다! (아무렇지도 않게 흡수했다니 나 혹시 dp 천재일지도?)각설하고

2021년 12월 1일
·
0개의 댓글
·