본문 바로가기

전체 글

(87)
[운영체제] CPU 스케줄링 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. CPU 스케줄링이란? 모든 프로세스는 CPU를 필요로 하고, 먼저 CPU를 사용하고 싶어 합니다. 이러한 프로세스들에게 공정하고 합리적으로 CPU 자원을 할당하기 위해 운영체제는 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 기다리게 할지를 결정합니다. 이렇게 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것을 CPU 스케줄링(CPU Scheduling)이라고 합니다. 프로그램의 실행 단계 (CPU and I/O Bursts) 합리적이고 효율적인 CPU 자원 배분을 위해 어떤 프로세스에게 CPU를 먼저 할당하는 것이..
[운영체제] 스레드 (Thread) 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 스레드(Thread) 스레드는 프로세스를 구성하는 실행 단위입니다. (lightweight process라고도 불립니다) 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며(최소 하나는 가짐), 스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행할 수 있습니다. 스레드의 구성 Thread의 구성: CPU 수행과 관련된 정보(공유 하지 않는 부분) Program Counter Register set Stack space Thread간 공유하는 영역 (= task) 메모리 내 Code, Data 영역 (= 메모리 주소 공간) OS resources ..
[RxSwift] Relay란? 안녕하세요 제인입니다 :) 저번 Rx 게시글이었던 Subject에 이어 Relay에 대해서도 한 번 정리해보려고 합니다. 이번에도 RxSwift: Reactive Programming with Swift 책을 참고해서 정리를 해보도록 하겠습니다! Subject에 대해 잘 모르시겠다면 아래의 게시글을 먼저 읽고 오시는 것을 추천드립니다. [RxSwift] Subject란? 안녕하세요 제인입니다 : ) 참 오랜만에 RxSwift 게시글 쓰게 되었습니다.. 문 닫은거 아니구요 정상영업하려구요.. 네.. 사실 그동안 RxSwift 공부를 아예 안한 것은 아닌데요.. 뭔가 게시글을 쓸 때 janechoi.tistory.com Relay란? Relay는 Subject의 Wrapper 클래스로, RxCocoa 내부에..
[운영체제] 프로세스 관리 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 프로세스 계층구조 프로세스는 실행 도중 시스템 호출을 통해 다른 프로세스를 생성할 수 있습니다. 이때 새 프로세스를 생성한 프로세스를 부모 프로세스(parent process), 부모 프로세스에 의해 생성된 프로세스를 자식 프로세스(child process)라고 합니다. 부모 프로세스로부터 생성된 자식 프로세스는 실행 과정에서 또 다른 자식 프로세스를 생성할 수 있고, 그 자식 프로세스도 자식 프로세스를 생성할 수 있습니다. 많은 운영체제는 이처럼 프로세스가 프로세스를 낳는 계층적인 구조(= 트리 구조)로써 프로세스들을 관리합니다. 프로세스 ..
[운영체제] 프로세스 상태 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고, 책을 참고하여 정리한 내용입니다. 게시글에 포함되는 이미지 자료는 강의에 포함된 강의 자료입니다. 프로세스의 상태 하나의 컴퓨터에서 여러 프로세스들이 빠르게 번갈아 가면서 실행되는 과정에서 하나의 프로세스는 여러 상태를 거치며 실행됩니다. 그리고 운영 체제는 프로세스의 상태를 PCB를 통해 인식하고 관리합니다. 프로세스가 가질 수 있는 대표적인 상태는 다음과 같습니다. 1. 생성 상태 - new 프로세스가 생성 중인 상태를 생성 상태(new) 라고 합니다. 2. 실행 상태 - running CPU를 할당 받아 실행 중(= instruction을 수행 중)인 상태를 실행 상태(running)라고 합니다. 우리가 사용하는 대부분의 컴퓨터는 C..
[운영체제] 프로세스 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 프로세스란? 프로세스는 실행 중인 프로그램입니다. PCB (Process Control Block) PCB는 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보입니다. 운영체제는 프로세스 당 PCB를 하나씩 두고(커널 영역에 생성) 이를 이용해 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 배분합니다. PCB에는 어떤 정보들이 담길까요? PCB의 구성은 위의 그림과 같습니다. (1) OS가 관리상 사용하는 정보 - Process ID(=PID): 특정 프로세스를 식별하기 위해 부여하는 고유한 ..
[Algorithm/Swift] 이진 탐색(Binary Search) 안녕하세요 제인입니다 :) 오늘은 탐색 알고리즘 중 이진 탐색(Binary Search)이 무엇인지 알아보고 Swift 코드로 구현까지 해보려고 합니다. 이진 탐색 알고리즘의 경우 탐색의 범위가 아주 큰 상황에서 속도를 내서 탐색할 수 있는 방법이니 잘 정리해두면 유용하게 사용할 수 있을 것 같습니다. 바로 시작해볼게요! 이진 탐색이란? 먼저, 이진 탐색이 왜 필요할까요?? 리스트 내에서 원하는 데이터를 찾기 위해 가장 기본적인 탐색 방법인 순차 탐색 방법과 비교하며 이진 탐색을 사용해야 하는 이유에 대해 알아봅시다. 순차 탐색 순차 탐색이란 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법입니다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용하게..
[RxSwift] Subject란? 안녕하세요 제인입니다 : ) 참 오랜만에 RxSwift 게시글 쓰게 되었습니다.. 문 닫은거 아니구요 정상영업하려구요.. 네.. 사실 그동안 RxSwift 공부를 아예 안한 것은 아닌데요.. 뭔가 게시글을 쓸 때 확실한 정보를 전달해야한다는 생각에 좀 더 공부하고 정리해서 올리자 좀 더 하고... 하다가 이렇게 미루게 된 것 같네요 하핫 이제 더 이상 미룰 수 없다! 많이 부족해도 글로 정리하면서 확실히 이해하는 부분들이 많은 것 같기도 하고, 최근에 프로젝트에서 RxSwift를 이용해 비동기 처리를 할 일이 많은데 정확히 알지 못하는 부분이 많다고 느꼈습니다.. 그래서 제대로 알고 코드를 짜고 싶어서 다시 RxSwift 공부를 열심히하며 티스토리에도 정리를 해보려고 합니다! 마지막으로 Observabl..