본문 바로가기

cs

(7)
[운영체제] 프로세스 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 프로세스란? 프로세스는 실행 중인 프로그램입니다. PCB (Process Control Block) PCB는 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보입니다. 운영체제는 프로세스 당 PCB를 하나씩 두고(커널 영역에 생성) 이를 이용해 빠르게 번갈아 수행되는 프로세스의 실행 순서를 관리하고, 프로세스에 CPU를 비롯한 자원을 배분합니다. PCB에는 어떤 정보들이 담길까요? PCB의 구성은 위의 그림과 같습니다. (1) OS가 관리상 사용하는 정보 - Process ID(=PID): 특정 프로세스를 식별하기 위해 부여하는 고유한 ..
[운영체제] 프로그램의 실행 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 프로그램의 실행 - 메모리 load 과정 프로그램이 어떻게 컴퓨터에서 실행되는 것인지 프로그램 실행 과정에 대해 정리해봅시다. 보통 프로그램은 하드디스크(파일 시스템)에 실행파일(exe) 형태로 저장되어 있습니다. 이 실행파일을 실행시키게 되면, 메모리로 올라가서 프로세스가 되어 실행됩니다. 즉, 프로그램 실행의 큰 구조는 Disk에 있는 실행 파일을 실행하면, 물리적인 메모리에 올라가서 프로세스가 되어 프로그램이 실행됩니다. 이 때, 바로 물리적인 메모리(Physical Memory)로 올라가는 것이 아니라 가상 메모리 단계를 거치게 됩니다. 어떤..
[운영체제] 컴퓨터 시스템 구조 본 게시글은 KOCW 이화여자대학교 반효경 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 컴퓨터 시스템 구조 컴퓨터 시스템은 크게 CPU, Memory, 주변장치(하드디스크, 입출력 장치)로 구성되고, 이들은 시스템 버스로 연결합니다. 먼저 간략하게 설명해보면, CPU는 모든 장치의 동작을 제어하고 명령을 실행하는 중앙처리장치이며, 메모리는 CPU의 작업 공간입니다. 주변장치는 큰 개념으로 모두 입출력 장치라고 볼 수 있는데, 입력 장치에는 키보드, 마우스 등이 있으며 출력장치는 모니터, 프린터 등이 있습니다. 하드디스크는 보조기억장치로 보통 이야기 하지만, 하드디스크의 데이터를 메모리로 읽어들이기도 하고(입력 장치로서의 역할), 처리 ..
[운영체제] 운영체제란? 운영체제란? 운영체제(OS, Operating System)는 사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와주고, 하드웨어를 효율적으로 사용할 수 있도록 다양한 기능을 제공하는 시스템 소프트웨어입니다. 컴퓨터 시스템은 크게 사용자, 소프트웨어, 하드웨어로 구성되는데, 운영체제는 하드웨어 바로 윗단에 설치되는 소프트웨어로 사용자가 하드웨어에 접근할 수 있는 유일한 수단입니다. 그렇기 때문에 운영체제는 하드웨어와 각종 소프트웨어, 그리고 사용자를 연결해주는 계층이라고 할 수 있습니다. 운영체제의 종류로는 UNIX, MS-DOS, MS Windows 등이 있습니다. 운영체제의 목적 1. 컴퓨터 시스템의 자원을 효율적으로 관리 (효율성) 컴퓨터 시스템의 ..
[Algorithm/Swift] BFS(너비 우선 탐색) Swift로 구현해보기 안녕하세요 제인입니다:) 오늘은 저번 알고리즘 포스팅(DFS)에 이어 BFS(너비 우선 탐색)에 대해 정리해보려 합니다! 시작하기 전에, 탐색 알고리즘 중 하나인 BFS를 이해하려면 우선 그래프에 대한 이해부터 필요하니 혹시 그래프에 대해 잘 모르신다면 아래 링크로 걸어둔 이전 포스팅을 참고해주시면 좋을 것 같습니다!! [Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근 janechoi.tistory.com BFS BFS(Breadth First Search)는 '너비 우선 탐색'이라는 의미..
[Algorithm/Swift] DFS(깊이 우선 탐색) Swift로 구현해보기 요즘 라는 책으로 알고리즘 개념들을 하나씩 뿌수고 있는데요, 이 책이 파이썬 언어를 기준으로 설명되어있어서 개념을 학습하고, 예제나 실전 문제들을 Swift언어로 풀이해보는 방식으로 차근차근 공부해가고 있습니다! 개념을 공부하고 Swift 언어로 바꿔보는 과정을 정리해두면 좋을 것 같아서 하나씩 정리해보려고 합니다! 오늘은 알고리즘에서 가장 중요한 개념들 중 하나인 탐색 알고리즘, 그 중에서도 DFS(깊이 우선 탐색)의 개념을 정리해보고, 책의 간단한 예제를 Swift 언어로 바꿔서 DFS를 구현해보도록 하겠습니다! DFS DFS(Depth-First Search)는 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. 그렇다면, 그래프는 어떤 구조인지 부터 알아야 ..
[네트워크] 인터넷이란? 본 게시글은 KOCW 이화여자대학교 이미정 교수님의 강의를 듣고 정리한 내용입니다. 게시글에 포함되는 이미지 자료 또한 해당 강의에 포함된 강의 자료입니다. 인터넷이란? 인터넷의 구성요소 인터넷의 가장자리에는 사용자 컴퓨터와 서버가 있는데, 이를 host 혹은 end system이라고 합니다. 네트워크에서 컴퓨터를 컴퓨터라 부르지 않고 host 혹은 end system이라고 부르는 이유는 사용자 컴퓨터에서 application program을 실행하고 있기 때문에, 다시 말하면 애플리케이션을 호스팅하고 있기 때문이며 네트워크의 가장자리(end)에 위치하고 있기 때문입니다. 네트워크의 중앙부에는 라우터 또는 스위치라고 불리는 특수한 장비들이 있습니다. 라우터는 사용자의 메시지가 목적지를 찾아가도록 하는 역..