분류 전체보기 23

[OS] 병행프로세스와 동기화

병행 프로세스와 동기화 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 병행 프로세스 '병행'이라는 말은 같이 존재하고 있다는 뜻이며, 메모리에 다수의 프로세스가 같이 존재한다는 것과 같은 의미입니다. 한 개의 CPU가 있는 단일처리 시스템에서 병행 프로세스 중 한 개의 프로세스만 실행되지만, CPU의 처리 시간을 효과적으로 나눔으로써 사람이 봤을 때는 동시에 처리되는 것 처럼 보이게 됩니다. 병행 프로세스들은 서로 간에 비동기적인데요. 다른 프로세스들이 어떤 상태에 있는지, 어떤 자원을 가지고 있는지, 어디까지 실행됐는지 등에 대해 모른 체 실행되고 있음을 의미합니다. 공유하는 자원이나 데이터가 있는 병행 프로세스들이 각자 비동기적으로 실행되는 ..

CS/OS 2021.06.27

[OS] CPU 스케줄링

CPU 스케줄링 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. CPU 스케줄링이란? CPU는 한 번에 한 가지 일(프로세스)만 수행할 수 있습니다. 주기억 장치에 적재되어 있는 프로세스 중 하나의 프로세스에 할당되어 작업을 수행하는데요. 그럼 CPU를 할당받기 기다리고 있는 많은 프로세스들 중 어느 프로세스에 CPU를 할당할 것인가? 하는 것이 바로 CPU 스케줄링 이고, 스케줄링을 해주는 커널 프로그램을 스케줄러라고 합니다. 사실, 프로세스 스케줄링은 3가지 단계가 있는데요. 어느 프로그램을 주기억장치에 적재하여 프로세스로 만들 것인가를 결정하는 장기 스케줄링 주기억장치에 있는 프로세스를 보류 상태로 만들거나, 보류 상태인 프로세스를 주기억 장..

CS/OS 2021.06.06

[OS] 프로세스와 스레드(Process, Thread)

프로세스와 스레드(Process, Thread) 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 프로세스(Process) 프로세스는 간단히 말하면 실행중인 프로그램입니다. 보조기억장치에 적재되어 있는 프로그램이 주기억장치에 적재되면서 프로세스 주소 공간을 할당 받고, 커널 영역에 프로세스 제어 블록(PCB)를 부여받은 프로그램을 프로세스라고 합니다. 프로세스는 CPU를 할당받는 작업의 단위입니다. 스레드(Thread) 스레드는 프로세스의 작은 흐름의 단위입니다. 하나의 큰 작업 단위를 프로세스라고 한다면, 큰 작업 내에 세부적인 작은 일들이 존재할 수 있습니다. 이런 작은 흐름들을 스레드라고 하는 것입니다. 한 프로세스에 속한 각각의 스레드들은 프..

CS/OS 2021.05.23

[OS] 프로세스 상태(Process State)

프로세스 상태(Process State) 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 프로세스는 일반적으로 실행중인 프로그램이라고 말합니다. 하지만 주기억장치에 적재되어있는 프로세스 중 CPU에 할당되어 실행되는 것은 하나의 프로세스 뿐입니다.(CPU가 1개인 경우로 가정) 그래서 앞 글에서 프로세스를 주기억장치에 적재되어 커널 영역에 PCB를 부여받은 프로그램이라고 표현했는데요. 프로세스는 '실행' 상태를 포함하여 여러 상태 변화를 거치게 됩니다. 생성 상태 프로그램이 커널 영역에 PCB를 부여받은 상태를 생성 상태라고 합니다. 프로세스로 생성되고 바로 보류 준비 또는 준비 상태로 가기 때문에 잠시 거쳐가는 상태입니다. 운영체제는 프로세스를 ..

CS/OS 2021.05.23

[OS] 프로세스(Process)

프로세스(Process) 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 운영체제의 역할 중 하나는 프로세스 관리입니다. 프로그램을 메모리에 적재하고 PCB(프로세스 제어 블록)을 생성하여 프로세스의 생명주기를 관리하고, 메모리에 적재되어 있는 프로세스를 CPU 스케줄링을 통해 효율적으로 CPU가 처리할 수 있도록 해주는 것인데요. CPU가 일을 하는 단위인 프로세스에 대해 알아보도록 하겠습니다. 프로그램(Program) 프로세스에 대해 알아보기 전에 프로그램이 무엇인지 먼저 알아보려고 합니다. 위키백과에서는 ''컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음(집합체)이다.' 라고 설명하고 있습니다. 우리가 ..

CS/OS 2021.05.22

[DB] 트랜잭션(Transaction)

트랜잭션(Transaction) 개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 트랜잭션이란 트랜잭션(Transaction)이란 하나의 논리적인 기능을 수행하기 위한 작업의 단위입니다. 하나의 논리적인 기능은 하나의 쿼리일 수도 있고, 여러 쿼리로 이루어질 수도 있습니다. 트랜잭션은 더 이상 쪼개질 수 없는 가장 작은 단위이므로 해당 트랜잭션 내의 동작은 모두 수행되거나, 모두 수행되지 않아야합니다. ex) A계좌에서 B계좌로 1000원을 입금하려고 합니다. A계좌의 잔고에서 1000원을 빼고, B계좌의 잔고를 1000원 더해야합니다. 이 작업은 계좌이체의 가장 작은 작업 단위로 둘 중 하나만 수행되면 안되고, 두 작업 모두 수행되어야 합니다. (..

CS/DB 2021.05.15

[OS] 인터럽트

개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. 인터럽트 (Interrupt) CPU는 한 번에 한 가지 일만 수행할 수 있습니다. CPU가 작업을 수행하던 도중 급하게 다른 작업을 처리해야할 일이 발생할 수 있는데요. 그 때 현재 수행하던 작업을 잠시 중단하고, 다른 작업을 수행할 수 있도록 하는 것을 인터럽트라고 합니다. 우리가 키보드를 사용하여 입력을 하면 키보드가 인터럽트를 요청하고, CPU는 현재 수행중이던 프로세스의 정보를 저장하고 인터럽트를 처리한 후 다시 프로그램을 수행하게 됩니다. 인터럽트는 하드웨어 인터럽트와 소프트웨어 인터럽트로 나눌 수 있는데요. 하드웨어 인터럽트는 키보드와 같은 장치 또는 주변장치들로부터 발생한 인터럽트입니다..

CS/OS 2021.05.15

[OS] 운영체제란?

개인적으로 공부하면서 정리하는 글입니다. 내용에 오류가 있는 경우 댓글 달아주시면 수정하도록 하겠습니다. OS? OS를 한마디로 표현하면 사용자 인터페이스와 자원관리를 위한 프로그램의 집합이라고 할 수 있습니다. 사용자 인터페이스는 사용자가 윈도우에서 아이콘이나 메뉴 버튼을 클릭하여 프로그램을 실행시키거나 파일을 여는 등의 일을 할 수 있도록 해주는 것이라고 할 수 있습니다. 자원관리는 컴퓨터의 자원(장치, 파일, 메모리, CPU 등)들을 효율적으로 관리하는 것 입니다. 이런 각각의 역할을 수행하는 프로그램들의 집합을 운영체제(OS)라고 합니다. 운영체제 구성요소 운영체제는 크게 커널(Kernel)과 유틸리티 프로그램(Utility Program)으로 나눌 수 있습니다. 커널은 운영체제에서 가장 중요한 ..

CS/OS 2021.05.15

[알고리즘 문제풀이] 백준 9625번 - BABBA

https://www.acmicpc.net/problem/9625 풀이 첫 글자는 A로 시작합니다. 그리고 버튼을 한 번씩 누를 때 마다, 모든 A는 B로 바뀌고, 모든 B는 BA로 바뀌게 됩니다. 1) A -> B 2) B -> BA 위 두 작업은 순차적으로 수행되는 것이 아니고, 병렬적으로 수행됩니다. 코드는 순차적으로 작성하긴 해야하는데 병렬적으로 수행되도록 구현하려면, 다음 상태 (A', B'라고 칭함) 변수를 지정하면 됩니다. 1) A -> B' 2) B -> B'A' 위와 같이 표현하면 이전 A, B값이 서로 영향을 주지 않고 다음 값을 나타낼 수 있게됩니다. 예시 ABA -> B'B'A'B' (BBAB) 버튼 누르기 전 : A(..

백준 17144번 - 미세먼지 안녕!

https://www.acmicpc.net/problem/17144 풀이 매 초마다 순서대로 동작을 진행한다. 미세먼지 확산 공기청정기 작동 1. 미세먼지 확산 r x c 배열에 퍼져있는 미세먼지들은 동시에 확산된다. 동시에 확산되기 때문에, (r,c) 위치에 있는 미세먼지는 인접한 네 방향으로 미세먼지를 확산시킴으로서 자신의 남은 미세먼지양은 줄게되고, 동시에 인접한 네 방향으로부터 확산된 미세먼지의 양이 추가된다. -1 10 20 -1 5 6 위와 같은 모양으로 미세먼지가 존재한다고 했을 때 (-1은 공기청정기), (0,1) 위치의 미세먼지가 인접한 네 방향으로 2만큼의 미세먼지를 확산시키고, 자산의 미세먼지 양은 -4만큼 감소한다. -1 10 - 4 20 + 2 -1 5 + 2 6 그리고 동시에, ..