The original meaning of those characters provided a way to shift a coloured ribbon, split longitudinally usually with red and black, up and down to the other colour in an electro-mechanical typewriter or teleprinter, such as the Teletype Model 38, to automate the same function of manual typewriters. Black was the conventional ambient default colour and so was shifted "in" or "out" with the other colour on the ribbon.
Later advancements in technology instigated use of this function for switching to a different font or character set and back. This was used, for instance, in the Russian language character set known as KOI7, where SO starts printing Russian alphabet, and SI starts printing Latin alphabet again. SO/SI control characters also are used to display VT-100 pseudographics, and emoji (Japanese picture icons) on SoftBank Mobile. ISO/IEC 2022 standard specifies their generalized usage.