분류 전체보기
![[OS/OSTEP] 07.CPU-sched : CPU 스케줄링 정책(scheduling policy) #4](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCSp2w%2FbtrzDPJ5KRK%2Fx1wiG6PvWUcqNWJc6ARDU0%2Fimg.png)
[OS/OSTEP] 07.CPU-sched : CPU 스케줄링 정책(scheduling policy) #4
07.CPU-sched # 시작하며 앞선 06포스팅 에서는 어떻게 cpu가 가상화하여 다중작업을 수행하는지에 대해서 알아 봤다면, 어떻게 그 다음 프로세스를 결정하는지에 데해서 알아보도록 한다. 즉 스케줄링 정책(scheduling policy)에 대해서 알아본다. 처음에는 초창기에 방식부터 점점 많은 요소들을 고려해가며 현대의 접근방법에 대해서 알아본다. 그렇기 때문에 처음에는 여러 가정을 통해서 조금 특별한 요소들을 제한하고 그 요소들을 하나씩 없애는 방식으로 설명한다. # 워크로드에 대한 가정 일련의 프로세스들이 실행하는 상황을 워크로드(Workload)라고 한다. 일단 지금은 많은 특별한 케이스들을 배제하는 가정을 세워야 했다. 하나씩 지워나가며 이 포스팅이 끝날때는 마지막 5의 가정 한개만 남게..
![[OS/OSTEP] 06.CPU-mechanisms : 제한적 직접 실행 원리 #3](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpheBp%2FbtrzzpsSItz%2FvxRm1OHgZA7pa4RvkCB561%2Fimg.png)
[OS/OSTEP] 06.CPU-mechanisms : 제한적 직접 실행 원리 #3
06.CPU-mechanisms : 제한적 직접 실행 원리 # 시작하며 여러 작업들이 동시에 실행되는 것처럼 보이게 하기 위해서 CPU를 가상화 해야한다. 이렇게 가상화된 CPU들은 동시에 실행되는 것처럼 보이지만 실제로는 물리적인 CPU를 공유하고 있는 것이다. 즉 돌아가면서 쓰고 있다는 것이다. 잠깐씩 실행시키면서 번걸아 쓰는 이러한 방식을 시분할방식(Time sharing)이라고 했었다. 이렇게 시분할방식을 사용하면 두가지 문제가 생긴다. 첫번째는 성능에 관한 이슈이다. 나눠쓴다는 것은 하나를 계속 쓸때보다는 성능 저하가 일어날 수 밖에 없다. 어떻게하면 과중한 오버헤드를 주지 않고 가상화를 구현 할 수 있을까? 두번째는 제어문제이다. CPU를 나눠쓰끼 때문에 제어를 명확히 하지 않으면, A프로세스..
![[OS/OSTEP] 05.CPU-API 프로세스 API #2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjrthY%2FbtrzDvrLYhx%2FfLwRgInkBtOOuQ4j0AxLV0%2Fimg.png)
[OS/OSTEP] 05.CPU-API 프로세스 API #2
05. CPU-API , # 시작하며 UNIX 시스템에서 프로세서를 생성하기 위해선 fork() 와 exec()를 사용한다. wait()를 생성하면 자신이 생성한 자식프로세서의 종료를 기다린다, 자식의 프로세서가 종료된다면 그 다음 코드들이 시작된다. 위의 시스템콜(syscall)을 사용하여 프로세스를 생성하고 제어하는 방법에 알아본다. 시스템 콜에대해서는 아마 다음장에서 나오는 것으로 기억하는데, 쉽게 말해 더 낮은 레벨에서 사용할 수 있는 명령어들이다. 이 명령어를 남발하면 해당 프로세스 뿐 아니라 모든 메모리에 접근할 수 있기 때문에 매우 위험하기 때문에 분리시켜 놓은 특수한 명령어 이다. 이 명령어는 운영체제가 실행한다고 생각하면 된다. # fork() 시스템 콜 결과를 보기전 간단하게 fork(..
![[OS/OSTEP] 04.CPU-intro 프로세스의 개념 #1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnlc9C%2FbtrzCKQahZs%2FyIKXAeOcqP1js9CcwJGeLK%2Fimg.png)
[OS/OSTEP] 04.CPU-intro 프로세스의 개념 #1
04-CPU-Intro, 프로세서의 개념 # 시작하며 운영체제는 프로세스(process)라는 핵심적인 개념을 제공한다. 프로세스는 "실행 중인 프로그램"이라고 생각하면 쉽다. 프로그램과 프로세서는 명확히 구분된다. 프로그램은 생명이 없는, 디스크상에 존재하는 명령어와 데이터 묶음일뿐이다. 쉽게 생각하면 우리는 바탕화면에서 파일을 클릭하여 실행한다. 아직 바탕화면에 남아있는 순간은 프로그램이며, 이 프로그램이 실행되는 순간이 프로세서인 것이다. 운영체제는 이렇게 프로그램이 프로세서가 되기 위한 동작을 도와준다. 우리는 게임을 하면서 노래를 듣기도 하며, 코딩을 하면서 인터넷 검색도 한다. 하나 이상의 프로세서가 동작하고 있는 것이다. 이런 프로세서 말고도 우리가 모르는 수많은 프로세서들이 행해지고 있다. ..
[OS/OSTEP] 운영체제 공부를 시작하며 #0
안드로이드 공부를 시작하면서 열심히 블로그 포스팅을 했다. 마지막 게시글이 4월10일이다. 블로그에 최대한 공부한걸 기록하려고 했지만 시험기간이 시작되면서 안드로이드 공부를 잠시 접어둔 상태이다. 그렇기 때문에 근래 포스팅이 없었다. 블로그에 쓰는거에 강박(?)아닌 강박이 생겨서 항상 뭔가를 써야할거 같은 생각이 들었다.. 그렇다면 현재 수강중인 운영체제 과목을 정리해보는 것도 좋은 생각인거 같았다. 사실 블로그에 포스팅을 한다는 것은 생각보다 많은시간을 잡아 먹기 때문에 망설였지만, 운영체제라는 지식 자체가 정말 중요한 개념이기도 하고, 여태까지 들었던 수업들은 학기가 끝나면 다 잊어버리고 없어진다는 느낌을 받았다. 그래도 한학기 긴 시간을 투자했는데 너무 아깝다는 생각도 들었고, 언젠간 내가 필요로 ..
![[안드로이드&코틀린] 틴더앱 만들기#1, 파이어베이스 Authentication이용하여 로그인 회원가입 기능 초간단 구현하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEuWLx%2FbtryrWKZORt%2FsS0Juxx4SiaLadaiAsXjaK%2Fimg.gif)
[안드로이드&코틀린] 틴더앱 만들기#1, 파이어베이스 Authentication이용하여 로그인 회원가입 기능 초간단 구현하기
최종 결과물이 아닌 본 게시글에서 공부했던 것의 결과물임. # 결과물 미리보기 아마 안드로이드의 가장 기초면서 가장 많이쓰이는 기술이 아닐까 싶다. 파이어베이스 Authentication을 이용하여 email로그인 회원가입 기능을 구현하는 것인데, 다른 소셜 로그인도 지원을 하기 때문에 로그인 단계를 편리하게 사용할 수 있다. 메인액티비와 로그인액티비티 두개를 분리했고, 메인액티비티의 onStart를 override하여 현재 로그인된 정보가 없으면 로그인 페이지로 이동 시키고, 그렇지 않다면 머물게 했다. 로그아웃 버튼을 누르면 현재 계정정보가 로그아웃 되고 로그인 액티비티로 넘어간다. # 파이어 베이스에 앱 연결하기 ## SDK 추가하기 파이어 베이스에서 프로젝트를 생성하고, 앱을 연동시킨다. 전에도 ..